home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / perl / mac-perl / mcprl402.bin / Perl_src / consarg.c < prev    next >
MacBinary  |  1992-11-25  |  30.3 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, Tue Nov 24 20:36:43 1992, modified Tue Nov 24 20:36:43 1992, creator 'MPS ', type ASCII, 30260 bytes "consarg.c" , at 0x76b4 428 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 63 6f 6e 73 61 72 | 67 2e 63 00 00 00 00 00 |..consar|g.c.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 76 34 00 | 00 01 ac a7 38 89 2b a7 |.....v4.|....8.+.|
|00000060| 38 89 2b 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |8.+.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 ca 7b 00 00 |........|.....{..|
|00000080| 2f 2a 20 24 52 43 53 66 | 69 6c 65 3a 20 63 6f 6e |/* $RCSf|ile: con|
|00000090| 73 61 72 67 2e 63 2c 76 | 20 24 24 52 65 76 69 73 |sarg.c,v| $$Revis|
|000000a0| 69 6f 6e 3a 20 34 2e 30 | 2e 31 2e 34 20 24 24 44 |ion: 4.0|.1.4 $$D|
|000000b0| 61 74 65 3a 20 39 32 2f | 30 36 2f 30 38 20 31 32 |ate: 92/|06/08 12|
|000000c0| 3a 32 36 3a 32 37 20 24 | 0d 20 2a 0d 20 2a 20 20 |:26:27 $|. *. * |
|000000d0| 20 20 43 6f 70 79 72 69 | 67 68 74 20 28 63 29 20 | Copyri|ght (c) |
|000000e0| 31 39 39 31 2c 20 4c 61 | 72 72 79 20 57 61 6c 6c |1991, La|rry Wall|
|000000f0| 0d 20 2a 0d 20 2a 20 20 | 20 20 59 6f 75 20 6d 61 |. *. * | You ma|
|00000100| 79 20 64 69 73 74 72 69 | 62 75 74 65 20 75 6e 64 |y distri|bute und|
|00000110| 65 72 20 74 68 65 20 74 | 65 72 6d 73 20 6f 66 20 |er the t|erms of |
|00000120| 65 69 74 68 65 72 20 74 | 68 65 20 47 4e 55 20 47 |either t|he GNU G|
|00000130| 65 6e 65 72 61 6c 20 50 | 75 62 6c 69 63 0d 20 2a |eneral P|ublic. *|
|00000140| 20 20 20 20 4c 69 63 65 | 6e 73 65 20 6f 72 20 74 | Lice|nse or t|
|00000150| 68 65 20 41 72 74 69 73 | 74 69 63 20 4c 69 63 65 |he Artis|tic Lice|
|00000160| 6e 73 65 2c 20 61 73 20 | 73 70 65 63 69 66 69 65 |nse, as |specifie|
|00000170| 64 20 69 6e 20 74 68 65 | 20 52 45 41 44 4d 45 20 |d in the| README |
|00000180| 66 69 6c 65 2e 0d 20 2a | 0d 20 2a 20 24 4c 6f 67 |file.. *|. * $Log|
|00000190| 3a 09 63 6f 6e 73 61 72 | 67 2e 63 2c 76 20 24 0d |:.consar|g.c,v $.|
|000001a0| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 34 2e 30 2e | * Revis|ion 4.0.|
|000001b0| 31 2e 34 20 20 39 32 2f | 30 36 2f 30 38 20 20 31 |1.4 92/|06/08 1|
|000001c0| 32 3a 32 36 3a 32 37 20 | 20 6c 77 61 6c 6c 0d 20 |2:26:27 | lwall. |
|000001d0| 2a 20 70 61 74 63 68 32 | 30 3a 20 6e 65 77 20 77 |* patch2|0: new w|
|000001e0| 61 72 6e 69 6e 67 20 66 | 6f 72 20 75 73 65 20 6f |arning f|or use o|
|000001f0| 66 20 78 20 77 69 74 68 | 20 6e 6f 6e 2d 6e 75 6d |f x with| non-num|
|00000200| 65 72 69 63 20 72 69 67 | 68 74 20 6f 70 65 72 61 |eric rig|ht opera|
|00000210| 6e 64 0d 20 2a 20 70 61 | 74 63 68 32 30 3a 20 6d |nd. * pa|tch20: m|
|00000220| 6f 64 75 6c 75 73 20 77 | 69 74 68 20 68 69 67 68 |odulus w|ith high|
|00000230| 65 73 74 20 62 69 74 20 | 69 6e 20 6c 65 66 74 20 |est bit |in left |
|00000240| 6f 70 65 72 61 6e 64 20 | 73 65 74 20 64 69 64 6e |operand |set didn|
|00000250| 27 74 20 61 6c 77 61 79 | 73 20 77 6f 72 6b 0d 20 |'t alway|s work. |
|00000260| 2a 20 70 61 74 63 68 32 | 30 3a 20 69 6c 6c 65 67 |* patch2|0: illeg|
|00000270| 61 6c 20 6c 76 61 6c 75 | 65 20 6d 65 73 73 61 67 |al lvalu|e messag|
|00000280| 65 20 63 6f 75 6c 64 20 | 62 65 20 66 6f 6c 6c 6f |e could |be follo|
|00000290| 77 65 64 20 62 79 20 63 | 6f 72 65 20 64 75 6d 70 |wed by c|ore dump|
|000002a0| 0d 20 2a 20 70 61 74 63 | 68 32 30 3a 20 64 65 6c |. * patc|h20: del|
|000002b0| 65 74 65 64 20 73 6f 6d | 65 20 6d 69 6e 6f 72 20 |eted som|e minor |
|000002c0| 6d 65 6d 6f 72 79 20 6c | 65 61 6b 73 0d 20 2a 20 |memory l|eaks. * |
|000002d0| 0d 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 34 2e 30 |. * Revi|sion 4.0|
|000002e0| 2e 31 2e 33 20 20 39 31 | 2f 31 31 2f 30 35 20 20 |.1.3 91|/11/05 |
|000002f0| 31 36 3a 32 31 3a 31 36 | 20 20 6c 77 61 6c 6c 0d |16:21:16| lwall.|
|00000300| 20 2a 20 70 61 74 63 68 | 31 31 3a 20 72 61 6e 64 | * patch|11: rand|
|00000310| 6f 6d 20 63 6c 65 61 6e | 75 70 0d 20 2a 20 70 61 |om clean|up. * pa|
|00000320| 74 63 68 31 31 3a 20 61 | 64 64 65 64 20 65 76 61 |tch11: a|dded eva|
|00000330| 6c 20 7b 7d 0d 20 2a 20 | 70 61 74 63 68 31 31 3a |l {}. * |patch11:|
|00000340| 20 61 64 64 65 64 20 73 | 6f 72 74 20 7b 7d 20 4c | added s|ort {} L|
|00000350| 49 53 54 0d 20 2a 20 70 | 61 74 63 68 31 31 3a 20 |IST. * p|atch11: |
|00000360| 22 66 6f 6f 22 20 78 20 | 2d 31 20 64 75 6d 70 65 |"foo" x |-1 dumpe|
|00000370| 64 20 63 6f 72 65 0d 20 | 2a 20 70 61 74 63 68 31 |d core. |* patch1|
|00000380| 31 3a 20 73 75 62 73 74 | 72 28 29 20 61 6e 64 20 |1: subst|r() and |
|00000390| 76 65 63 28 29 20 77 65 | 72 65 6e 27 74 20 61 6c |vec() we|ren't al|
|000003a0| 6c 6f 77 65 64 20 69 6e | 20 61 6e 20 6c 76 61 6c |lowed in| an lval|
|000003b0| 75 65 20 6c 69 73 74 0d | 20 2a 20 0d 20 2a 20 52 |ue list.| * . * R|
|000003c0| 65 76 69 73 69 6f 6e 20 | 34 2e 30 2e 31 2e 32 20 |evision |4.0.1.2 |
|000003d0| 20 39 31 2f 30 36 2f 30 | 37 20 20 31 30 3a 33 33 | 91/06/0|7 10:33|
|000003e0| 3a 31 32 20 20 6c 77 61 | 6c 6c 0d 20 2a 20 70 61 |:12 lwa|ll. * pa|
|000003f0| 74 63 68 34 3a 20 6e 65 | 77 20 63 6f 70 79 72 69 |tch4: ne|w copyri|
|00000400| 67 68 74 20 6e 6f 74 69 | 63 65 0d 20 2a 20 70 61 |ght noti|ce. * pa|
|00000410| 74 63 68 34 3a 20 6c 65 | 6e 67 74 68 28 24 60 29 |tch4: le|ngth($`)|
|00000420| 2c 20 6c 65 6e 67 74 68 | 28 24 26 29 2c 20 6c 65 |, length|($&), le|
|00000430| 6e 67 74 68 28 24 27 29 | 20 6e 6f 77 20 6f 70 74 |ngth($')| now opt|
|00000440| 69 6d 69 7a 65 64 20 74 | 6f 20 61 76 6f 69 64 20 |imized t|o avoid |
|00000450| 73 74 72 69 6e 67 20 63 | 6f 70 79 0d 20 2a 20 0d |string c|opy. * .|
|00000460| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 34 2e 30 2e | * Revis|ion 4.0.|
|00000470| 31 2e 31 20 20 39 31 2f | 30 34 2f 31 31 20 20 31 |1.1 91/|04/11 1|
|00000480| 37 3a 33 38 3a 33 34 20 | 20 6c 77 61 6c 6c 0d 20 |7:38:34 | lwall. |
|00000490| 2a 20 70 61 74 63 68 31 | 3a 20 66 69 78 65 64 20 |* patch1|: fixed |
|000004a0| 22 42 61 64 20 66 72 65 | 65 22 20 65 72 72 6f 72 |"Bad fre|e" error|
|000004b0| 0d 20 2a 20 0d 20 2a 20 | 52 65 76 69 73 69 6f 6e |. * . * |Revision|
|000004c0| 20 34 2e 30 20 20 39 31 | 2f 30 33 2f 32 30 20 20 | 4.0 91|/03/20 |
|000004d0| 30 31 3a 30 36 3a 31 35 | 20 20 6c 77 61 6c 6c 0d |01:06:15| lwall.|
|000004e0| 20 2a 20 34 2e 30 20 62 | 61 73 65 6c 69 6e 65 2e | * 4.0 b|aseline.|
|000004f0| 0d 20 2a 20 0d 20 2a 2f | 0d 0d 23 69 6e 63 6c 75 |. * . */|..#inclu|
|00000500| 64 65 20 22 45 58 54 45 | 52 4e 2e 68 22 0d 23 69 |de "EXTE|RN.h".#i|
|00000510| 6e 63 6c 75 64 65 20 22 | 70 65 72 6c 2e 68 22 0d |nclude "|perl.h".|
|00000520| 73 74 61 74 69 63 20 69 | 6e 74 20 6e 6f 74 68 69 |static i|nt nothi|
|00000530| 6e 67 5f 69 6e 5f 63 6f | 6d 6d 6f 6e 28 29 3b 0d |ng_in_co|mmon();.|
|00000540| 73 74 61 74 69 63 20 69 | 6e 74 20 61 72 67 5f 63 |static i|nt arg_c|
|00000550| 6f 6d 6d 6f 6e 28 29 3b | 0d 73 74 61 74 69 63 20 |ommon();|.static |
|00000560| 69 6e 74 20 73 70 61 74 | 5f 63 6f 6d 6d 6f 6e 28 |int spat|_common(|
|00000570| 29 3b 0d 0d 41 52 47 20 | 2a 0d 6d 61 6b 65 5f 73 |);..ARG |*.make_s|
|00000580| 70 6c 69 74 28 73 74 61 | 62 2c 61 72 67 2c 6c 69 |plit(sta|b,arg,li|
|00000590| 6d 61 72 67 29 0d 72 65 | 67 69 73 74 65 72 20 53 |marg).re|gister S|
|000005a0| 54 41 42 20 2a 73 74 61 | 62 3b 0d 72 65 67 69 73 |TAB *sta|b;.regis|
|000005b0| 74 65 72 20 41 52 47 20 | 2a 61 72 67 3b 0d 41 52 |ter ARG |*arg;.AR|
|000005c0| 47 20 2a 6c 69 6d 61 72 | 67 3b 0d 7b 0d 20 20 20 |G *limar|g;.{. |
|000005d0| 20 72 65 67 69 73 74 65 | 72 20 53 50 41 54 20 2a | registe|r SPAT *|
|000005e0| 73 70 61 74 3b 0d 0d 20 | 20 20 20 69 66 20 28 61 |spat;.. | if (a|
|000005f0| 72 67 2d 3e 61 72 67 5f | 74 79 70 65 20 21 3d 20 |rg->arg_|type != |
|00000600| 4f 5f 4d 41 54 43 48 29 | 20 7b 0d 09 4e 65 77 7a |O_MATCH)| {..Newz|
|00000610| 28 32 30 31 2c 73 70 61 | 74 2c 31 2c 53 50 41 54 |(201,spa|t,1,SPAT|
|00000620| 29 3b 0d 09 73 70 61 74 | 2d 3e 73 70 61 74 5f 6e |);..spat|->spat_n|
|00000630| 65 78 74 20 3d 20 63 75 | 72 73 74 61 73 68 2d 3e |ext = cu|rstash->|
|00000640| 74 62 6c 5f 73 70 61 74 | 72 6f 6f 74 3b 20 2f 2a |tbl_spat|root; /*|
|00000650| 20 6c 69 6e 6b 20 69 6e | 74 6f 20 73 70 61 74 20 | link in|to spat |
|00000660| 6c 69 73 74 20 2a 2f 0d | 09 63 75 72 73 74 61 73 |list */.|.curstas|
|00000670| 68 2d 3e 74 62 6c 5f 73 | 70 61 74 72 6f 6f 74 20 |h->tbl_s|patroot |
|00000680| 3d 20 73 70 61 74 3b 0d | 0d 09 73 70 61 74 2d 3e |= spat;.|..spat->|
|00000690| 73 70 61 74 5f 72 75 6e | 74 69 6d 65 20 3d 20 61 |spat_run|time = a|
|000006a0| 72 67 3b 0d 09 61 72 67 | 20 3d 20 6d 61 6b 65 5f |rg;..arg| = make_|
|000006b0| 6d 61 74 63 68 28 4f 5f | 4d 41 54 43 48 2c 73 74 |match(O_|MATCH,st|
|000006c0| 61 62 32 61 72 67 28 41 | 5f 53 54 41 42 2c 64 65 |ab2arg(A|_STAB,de|
|000006d0| 66 73 74 61 62 29 2c 73 | 70 61 74 29 3b 0d 20 20 |fstab),s|pat);. |
|000006e0| 20 20 7d 0d 20 20 20 20 | 52 65 6e 65 77 28 61 72 | }. |Renew(ar|
|000006f0| 67 2c 34 2c 41 52 47 29 | 3b 0d 20 20 20 20 61 72 |g,4,ARG)|;. ar|
|00000700| 67 2d 3e 61 72 67 5f 6c | 65 6e 20 3d 20 33 3b 0d |g->arg_l|en = 3;.|
|00000710| 20 20 20 20 69 66 20 28 | 6c 69 6d 61 72 67 29 20 | if (|limarg) |
|00000720| 7b 0d 09 69 66 20 28 6c | 69 6d 61 72 67 2d 3e 61 |{..if (l|imarg->a|
|00000730| 72 67 5f 74 79 70 65 20 | 3d 3d 20 4f 5f 49 54 45 |rg_type |== O_ITE|
|00000740| 4d 29 20 7b 0d 09 20 20 | 20 20 43 6f 70 79 28 6c |M) {.. | Copy(l|
|00000750| 69 6d 61 72 67 2b 31 2c | 61 72 67 2b 33 2c 31 2c |imarg+1,|arg+3,1,|
|00000760| 41 52 47 29 3b 0d 09 20 | 20 20 20 6c 69 6d 61 72 |ARG);.. | limar|
|00000770| 67 5b 31 5d 2e 61 72 67 | 5f 74 79 70 65 20 3d 20 |g[1].arg|_type = |
|00000780| 41 5f 4e 55 4c 4c 3b 0d | 09 20 20 20 20 61 72 67 |A_NULL;.|. arg|
|00000790| 5f 66 72 65 65 28 6c 69 | 6d 61 72 67 29 3b 0d 09 |_free(li|marg);..|
|000007a0| 7d 0d 09 65 6c 73 65 20 | 7b 0d 09 20 20 20 20 61 |}..else |{.. a|
|000007b0| 72 67 5b 33 5d 2e 61 72 | 67 5f 66 6c 61 67 73 20 |rg[3].ar|g_flags |
|000007c0| 3d 20 30 3b 0d 09 20 20 | 20 20 61 72 67 5b 33 5d |= 0;.. | arg[3]|
|000007d0| 2e 61 72 67 5f 6c 65 6e | 20 3d 20 30 3b 0d 09 20 |.arg_len| = 0;.. |
|000007e0| 20 20 20 61 72 67 5b 33 | 5d 2e 61 72 67 5f 74 79 | arg[3|].arg_ty|
|000007f0| 70 65 20 3d 20 41 5f 45 | 58 50 52 3b 0d 09 20 20 |pe = A_E|XPR;.. |
|00000800| 20 20 61 72 67 5b 33 5d | 2e 61 72 67 5f 70 74 72 | arg[3]|.arg_ptr|
|00000810| 2e 61 72 67 5f 61 72 67 | 20 3d 20 6c 69 6d 61 72 |.arg_arg| = limar|
|00000820| 67 3b 0d 09 7d 0d 20 20 | 20 20 7d 0d 20 20 20 20 |g;..}. | }. |
|00000830| 65 6c 73 65 20 7b 0d 09 | 61 72 67 5b 33 5d 2e 61 |else {..|arg[3].a|
|00000840| 72 67 5f 66 6c 61 67 73 | 20 3d 20 30 3b 0d 09 61 |rg_flags| = 0;..a|
|00000850| 72 67 5b 33 5d 2e 61 72 | 67 5f 6c 65 6e 20 3d 20 |rg[3].ar|g_len = |
|00000860| 30 3b 0d 09 61 72 67 5b | 33 5d 2e 61 72 67 5f 74 |0;..arg[|3].arg_t|
|00000870| 79 70 65 20 3d 20 41 5f | 4e 55 4c 4c 3b 0d 09 61 |ype = A_|NULL;..a|
|00000880| 72 67 5b 33 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |rg[3].ar|g_ptr.ar|
|00000890| 67 5f 61 72 67 20 3d 20 | 4e 75 6c 6c 61 72 67 3b |g_arg = |Nullarg;|
|000008a0| 0d 20 20 20 20 7d 0d 20 | 20 20 20 61 72 67 2d 3e |. }. | arg->|
|000008b0| 61 72 67 5f 74 79 70 65 | 20 3d 20 4f 5f 53 50 4c |arg_type| = O_SPL|
|000008c0| 49 54 3b 0d 20 20 20 20 | 73 70 61 74 20 3d 20 61 |IT;. |spat = a|
|000008d0| 72 67 5b 32 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |rg[2].ar|g_ptr.ar|
|000008e0| 67 5f 73 70 61 74 3b 0d | 20 20 20 20 73 70 61 74 |g_spat;.| spat|
|000008f0| 2d 3e 73 70 61 74 5f 72 | 65 70 6c 20 3d 20 73 74 |->spat_r|epl = st|
|00000900| 61 62 32 61 72 67 28 41 | 5f 53 54 41 42 2c 61 61 |ab2arg(A|_STAB,aa|
|00000910| 64 64 28 73 74 61 62 29 | 29 3b 0d 20 20 20 20 69 |dd(stab)|);. i|
|00000920| 66 20 28 73 70 61 74 2d | 3e 73 70 61 74 5f 73 68 |f (spat-|>spat_sh|
|00000930| 6f 72 74 29 20 7b 09 2f | 2a 20 65 78 61 63 74 20 |ort) {./|* exact |
|00000940| 6d 61 74 63 68 20 63 61 | 6e 20 62 79 70 61 73 73 |match ca|n bypass|
|00000950| 20 72 65 67 65 78 65 63 | 28 29 20 2a 2f 0d 09 69 | regexec|() */..i|
|00000960| 66 20 28 21 28 28 73 70 | 61 74 2d 3e 73 70 61 74 |f (!((sp|at->spat|
|00000970| 5f 66 6c 61 67 73 20 26 | 20 53 50 41 54 5f 53 43 |_flags &| SPAT_SC|
|00000980| 41 4e 46 49 52 53 54 29 | 20 26 26 0d 09 20 20 20 |ANFIRST)| &&.. |
|00000990| 20 28 73 70 61 74 2d 3e | 73 70 61 74 5f 66 6c 61 | (spat->|spat_fla|
|000009a0| 67 73 20 26 20 53 50 41 | 54 5f 41 4c 4c 29 20 29 |gs & SPA|T_ALL) )|
|000009b0| 29 20 7b 0d 09 20 20 20 | 20 73 74 72 5f 66 72 65 |) {.. | str_fre|
|000009c0| 65 28 73 70 61 74 2d 3e | 73 70 61 74 5f 73 68 6f |e(spat->|spat_sho|
|000009d0| 72 74 29 3b 0d 09 20 20 | 20 20 73 70 61 74 2d 3e |rt);.. | spat->|
|000009e0| 73 70 61 74 5f 73 68 6f | 72 74 20 3d 20 4e 75 6c |spat_sho|rt = Nul|
|000009f0| 6c 73 74 72 3b 0d 09 7d | 0d 20 20 20 20 7d 0d 20 |lstr;..}|. }. |
|00000a00| 20 20 20 72 65 74 75 72 | 6e 20 61 72 67 3b 0d 7d | retur|n arg;.}|
|00000a10| 0d 0d 41 52 47 20 2a 0d | 6d 6f 64 5f 6d 61 74 63 |..ARG *.|mod_matc|
|00000a20| 68 28 74 79 70 65 2c 6c | 65 66 74 2c 70 61 74 29 |h(type,l|eft,pat)|
|00000a30| 0d 72 65 67 69 73 74 65 | 72 20 41 52 47 20 2a 6c |.registe|r ARG *l|
|00000a40| 65 66 74 3b 0d 72 65 67 | 69 73 74 65 72 20 41 52 |eft;.reg|ister AR|
|00000a50| 47 20 2a 70 61 74 3b 0d | 7b 0d 0d 20 20 20 20 72 |G *pat;.|{.. r|
|00000a60| 65 67 69 73 74 65 72 20 | 53 50 41 54 20 2a 73 70 |egister |SPAT *sp|
|00000a70| 61 74 3b 0d 20 20 20 20 | 72 65 67 69 73 74 65 72 |at;. |register|
|00000a80| 20 41 52 47 20 2a 6e 65 | 77 61 72 67 3b 0d 0d 20 | ARG *ne|warg;.. |
|00000a90| 20 20 20 69 66 20 28 21 | 70 61 74 29 0d 09 72 65 | if (!|pat)..re|
|00000aa0| 74 75 72 6e 20 4e 75 6c | 6c 61 72 67 3b 0d 0d 20 |turn Nul|larg;.. |
|00000ab0| 20 20 20 69 66 20 28 28 | 70 61 74 2d 3e 61 72 67 | if ((|pat->arg|
|00000ac0| 5f 74 79 70 65 20 3d 3d | 20 4f 5f 4d 41 54 43 48 |_type ==| O_MATCH|
|00000ad0| 20 7c 7c 0d 09 20 70 61 | 74 2d 3e 61 72 67 5f 74 | ||.. pa|t->arg_t|
|00000ae0| 79 70 65 20 3d 3d 20 4f | 5f 53 55 42 53 54 20 7c |ype == O|_SUBST ||
|00000af0| 7c 0d 09 20 70 61 74 2d | 3e 61 72 67 5f 74 79 70 ||.. pat-|>arg_typ|
|00000b00| 65 20 3d 3d 20 4f 5f 54 | 52 41 4e 53 20 7c 7c 0d |e == O_T|RANS ||.|
|00000b10| 09 20 70 61 74 2d 3e 61 | 72 67 5f 74 79 70 65 20 |. pat->a|rg_type |
|00000b20| 3d 3d 20 4f 5f 53 50 4c | 49 54 0d 09 29 20 26 26 |== O_SPL|IT..) &&|
|00000b30| 0d 09 70 61 74 5b 31 5d | 2e 61 72 67 5f 70 74 72 |..pat[1]|.arg_ptr|
|00000b40| 2e 61 72 67 5f 73 74 61 | 62 20 3d 3d 20 64 65 66 |.arg_sta|b == def|
|00000b50| 73 74 61 62 20 29 20 7b | 0d 09 73 77 69 74 63 68 |stab ) {|..switch|
|00000b60| 20 28 70 61 74 2d 3e 61 | 72 67 5f 74 79 70 65 29 | (pat->a|rg_type)|
|00000b70| 20 7b 0d 09 63 61 73 65 | 20 4f 5f 4d 41 54 43 48 | {..case| O_MATCH|
|00000b80| 3a 0d 09 20 20 20 20 6e | 65 77 61 72 67 20 3d 20 |:.. n|ewarg = |
|00000b90| 6d 61 6b 65 5f 6f 70 28 | 74 79 70 65 20 3d 3d 20 |make_op(|type == |
|00000ba0| 4f 5f 4d 41 54 43 48 20 | 3f 20 4f 5f 4d 41 54 43 |O_MATCH |? O_MATC|
|00000bb0| 48 20 3a 20 4f 5f 4e 4d | 41 54 43 48 2c 0d 09 09 |H : O_NM|ATCH,...|
|00000bc0| 70 61 74 2d 3e 61 72 67 | 5f 6c 65 6e 2c 0d 09 09 |pat->arg|_len,...|
|00000bd0| 6c 65 66 74 2c 4e 75 6c | 6c 61 72 67 2c 4e 75 6c |left,Nul|larg,Nul|
|00000be0| 6c 61 72 67 29 3b 0d 09 | 20 20 20 20 62 72 65 61 |larg);..| brea|
|00000bf0| 6b 3b 0d 09 63 61 73 65 | 20 4f 5f 53 55 42 53 54 |k;..case| O_SUBST|
|00000c00| 3a 0d 09 20 20 20 20 6e | 65 77 61 72 67 20 3d 20 |:.. n|ewarg = |
|00000c10| 6c 28 6d 61 6b 65 5f 6f | 70 28 74 79 70 65 20 3d |l(make_o|p(type =|
|00000c20| 3d 20 4f 5f 4d 41 54 43 | 48 20 3f 20 4f 5f 53 55 |= O_MATC|H ? O_SU|
|00000c30| 42 53 54 20 3a 20 4f 5f | 4e 53 55 42 53 54 2c 0d |BST : O_|NSUBST,.|
|00000c40| 09 09 70 61 74 2d 3e 61 | 72 67 5f 6c 65 6e 2c 0d |..pat->a|rg_len,.|
|00000c50| 09 09 6c 65 66 74 2c 4e | 75 6c 6c 61 72 67 2c 4e |..left,N|ullarg,N|
|00000c60| 75 6c 6c 61 72 67 29 29 | 3b 0d 09 20 20 20 20 62 |ullarg))|;.. b|
|00000c70| 72 65 61 6b 3b 0d 09 63 | 61 73 65 20 4f 5f 54 52 |reak;..c|ase O_TR|
|00000c80| 41 4e 53 3a 0d 09 20 20 | 20 20 6e 65 77 61 72 67 |ANS:.. | newarg|
|00000c90| 20 3d 20 6c 28 6d 61 6b | 65 5f 6f 70 28 74 79 70 | = l(mak|e_op(typ|
|00000ca0| 65 20 3d 3d 20 4f 5f 4d | 41 54 43 48 20 3f 20 4f |e == O_M|ATCH ? O|
|00000cb0| 5f 54 52 41 4e 53 20 3a | 20 4f 5f 4e 54 52 41 4e |_TRANS :| O_NTRAN|
|00000cc0| 53 2c 0d 09 09 70 61 74 | 2d 3e 61 72 67 5f 6c 65 |S,...pat|->arg_le|
|00000cd0| 6e 2c 0d 09 09 6c 65 66 | 74 2c 4e 75 6c 6c 61 72 |n,...lef|t,Nullar|
|00000ce0| 67 2c 4e 75 6c 6c 61 72 | 67 29 29 3b 0d 09 20 20 |g,Nullar|g));.. |
|00000cf0| 20 20 62 72 65 61 6b 3b | 0d 09 63 61 73 65 20 4f | break;|..case O|
|00000d00| 5f 53 50 4c 49 54 3a 0d | 09 20 20 20 20 6e 65 77 |_SPLIT:.|. new|
|00000d10| 61 72 67 20 3d 20 6d 61 | 6b 65 5f 6f 70 28 74 79 |arg = ma|ke_op(ty|
|00000d20| 70 65 20 3d 3d 20 4f 5f | 4d 41 54 43 48 20 3f 20 |pe == O_|MATCH ? |
|00000d30| 4f 5f 53 50 4c 49 54 20 | 3a 20 4f 5f 53 50 4c 49 |O_SPLIT |: O_SPLI|
|00000d40| 54 2c 0d 09 09 70 61 74 | 2d 3e 61 72 67 5f 6c 65 |T,...pat|->arg_le|
|00000d50| 6e 2c 0d 09 09 6c 65 66 | 74 2c 4e 75 6c 6c 61 72 |n,...lef|t,Nullar|
|00000d60| 67 2c 4e 75 6c 6c 61 72 | 67 29 3b 0d 09 20 20 20 |g,Nullar|g);.. |
|00000d70| 20 62 72 65 61 6b 3b 0d | 09 7d 0d 09 69 66 20 28 | break;.|.}..if (|
|00000d80| 70 61 74 2d 3e 61 72 67 | 5f 6c 65 6e 20 3e 3d 20 |pat->arg|_len >= |
|00000d90| 32 29 20 7b 0d 09 20 20 | 20 20 6e 65 77 61 72 67 |2) {.. | newarg|
|00000da0| 5b 32 5d 2e 61 72 67 5f | 74 79 70 65 20 3d 20 70 |[2].arg_|type = p|
|00000db0| 61 74 5b 32 5d 2e 61 72 | 67 5f 74 79 70 65 3b 0d |at[2].ar|g_type;.|
|00000dc0| 09 20 20 20 20 6e 65 77 | 61 72 67 5b 32 5d 2e 61 |. new|arg[2].a|
|00000dd0| 72 67 5f 70 74 72 20 3d | 20 70 61 74 5b 32 5d 2e |rg_ptr =| pat[2].|
|00000de0| 61 72 67 5f 70 74 72 3b | 0d 09 20 20 20 20 6e 65 |arg_ptr;|.. ne|
|00000df0| 77 61 72 67 5b 32 5d 2e | 61 72 67 5f 6c 65 6e 20 |warg[2].|arg_len |
|00000e00| 3d 20 70 61 74 5b 32 5d | 2e 61 72 67 5f 6c 65 6e |= pat[2]|.arg_len|
|00000e10| 3b 0d 09 20 20 20 20 6e | 65 77 61 72 67 5b 32 5d |;.. n|ewarg[2]|
|00000e20| 2e 61 72 67 5f 66 6c 61 | 67 73 20 3d 20 70 61 74 |.arg_fla|gs = pat|
|00000e30| 5b 32 5d 2e 61 72 67 5f | 66 6c 61 67 73 3b 0d 09 |[2].arg_|flags;..|
|00000e40| 20 20 20 20 69 66 20 28 | 70 61 74 2d 3e 61 72 67 | if (|pat->arg|
|00000e50| 5f 6c 65 6e 20 3e 3d 20 | 33 29 20 7b 0d 09 09 6e |_len >= |3) {...n|
|00000e60| 65 77 61 72 67 5b 33 5d | 2e 61 72 67 5f 74 79 70 |ewarg[3]|.arg_typ|
|00000e70| 65 20 3d 20 70 61 74 5b | 33 5d 2e 61 72 67 5f 74 |e = pat[|3].arg_t|
|00000e80| 79 70 65 3b 0d 09 09 6e | 65 77 61 72 67 5b 33 5d |ype;...n|ewarg[3]|
|00000e90| 2e 61 72 67 5f 70 74 72 | 20 3d 20 70 61 74 5b 33 |.arg_ptr| = pat[3|
|00000ea0| 5d 2e 61 72 67 5f 70 74 | 72 3b 0d 09 09 6e 65 77 |].arg_pt|r;...new|
|00000eb0| 61 72 67 5b 33 5d 2e 61 | 72 67 5f 6c 65 6e 20 3d |arg[3].a|rg_len =|
|00000ec0| 20 70 61 74 5b 33 5d 2e | 61 72 67 5f 6c 65 6e 3b | pat[3].|arg_len;|
|00000ed0| 0d 09 09 6e 65 77 61 72 | 67 5b 33 5d 2e 61 72 67 |...newar|g[3].arg|
|00000ee0| 5f 66 6c 61 67 73 20 3d | 20 70 61 74 5b 33 5d 2e |_flags =| pat[3].|
|00000ef0| 61 72 67 5f 66 6c 61 67 | 73 3b 0d 09 20 20 20 20 |arg_flag|s;.. |
|00000f00| 7d 0d 09 7d 0d 09 66 72 | 65 65 5f 61 72 67 28 70 |}..}..fr|ee_arg(p|
|00000f10| 61 74 29 3b 0d 20 20 20 | 20 7d 0d 20 20 20 20 65 |at);. | }. e|
|00000f20| 6c 73 65 20 7b 0d 09 4e | 65 77 7a 28 32 30 32 2c |lse {..N|ewz(202,|
|00000f30| 73 70 61 74 2c 31 2c 53 | 50 41 54 29 3b 0d 09 73 |spat,1,S|PAT);..s|
|00000f40| 70 61 74 2d 3e 73 70 61 | 74 5f 6e 65 78 74 20 3d |pat->spa|t_next =|
|00000f50| 20 63 75 72 73 74 61 73 | 68 2d 3e 74 62 6c 5f 73 | curstas|h->tbl_s|
|00000f60| 70 61 74 72 6f 6f 74 3b | 20 2f 2a 20 6c 69 6e 6b |patroot;| /* link|
|00000f70| 20 69 6e 74 6f 20 73 70 | 61 74 20 6c 69 73 74 20 | into sp|at list |
|00000f80| 2a 2f 0d 09 63 75 72 73 | 74 61 73 68 2d 3e 74 62 |*/..curs|tash->tb|
|00000f90| 6c 5f 73 70 61 74 72 6f | 6f 74 20 3d 20 73 70 61 |l_spatro|ot = spa|
|00000fa0| 74 3b 0d 0d 09 73 70 61 | 74 2d 3e 73 70 61 74 5f |t;...spa|t->spat_|
|00000fb0| 72 75 6e 74 69 6d 65 20 | 3d 20 70 61 74 3b 0d 09 |runtime |= pat;..|
|00000fc0| 6e 65 77 61 72 67 20 3d | 20 6d 61 6b 65 5f 6f 70 |newarg =| make_op|
|00000fd0| 28 74 79 70 65 2c 32 2c | 6c 65 66 74 2c 4e 75 6c |(type,2,|left,Nul|
|00000fe0| 6c 61 72 67 2c 4e 75 6c | 6c 61 72 67 29 3b 0d 09 |larg,Nul|larg);..|
|00000ff0| 6e 65 77 61 72 67 5b 32 | 5d 2e 61 72 67 5f 74 79 |newarg[2|].arg_ty|
|00001000| 70 65 20 3d 20 41 5f 53 | 50 41 54 20 7c 20 41 5f |pe = A_S|PAT | A_|
|00001010| 44 4f 4e 54 3b 0d 09 6e | 65 77 61 72 67 5b 32 5d |DONT;..n|ewarg[2]|
|00001020| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 73 70 61 |.arg_ptr|.arg_spa|
|00001030| 74 20 3d 20 73 70 61 74 | 3b 0d 20 20 20 20 7d 0d |t = spat|;. }.|
|00001040| 0d 20 20 20 20 72 65 74 | 75 72 6e 20 6e 65 77 61 |. ret|urn newa|
|00001050| 72 67 3b 0d 7d 0d 0d 41 | 52 47 20 2a 0d 6d 61 6b |rg;.}..A|RG *.mak|
|00001060| 65 5f 6f 70 28 74 79 70 | 65 2c 6e 65 77 6c 65 6e |e_op(typ|e,newlen|
|00001070| 2c 61 72 67 31 2c 61 72 | 67 32 2c 61 72 67 33 29 |,arg1,ar|g2,arg3)|
|00001080| 0d 69 6e 74 20 74 79 70 | 65 3b 0d 69 6e 74 20 6e |.int typ|e;.int n|
|00001090| 65 77 6c 65 6e 3b 0d 41 | 52 47 20 2a 61 72 67 31 |ewlen;.A|RG *arg1|
|000010a0| 3b 0d 41 52 47 20 2a 61 | 72 67 32 3b 0d 41 52 47 |;.ARG *a|rg2;.ARG|
|000010b0| 20 2a 61 72 67 33 3b 0d | 7b 0d 20 20 20 20 72 65 | *arg3;.|{. re|
|000010c0| 67 69 73 74 65 72 20 41 | 52 47 20 2a 61 72 67 3b |gister A|RG *arg;|
|000010d0| 0d 20 20 20 20 72 65 67 | 69 73 74 65 72 20 41 52 |. reg|ister AR|
|000010e0| 47 20 2a 63 68 6c 64 3b | 0d 20 20 20 20 72 65 67 |G *chld;|. reg|
|000010f0| 69 73 74 65 72 20 75 6e | 73 69 67 6e 65 64 20 64 |ister un|signed d|
|00001100| 6f 61 72 67 3b 0d 20 20 | 20 20 72 65 67 69 73 74 |oarg;. | regist|
|00001110| 65 72 20 69 6e 74 20 69 | 3b 0d 20 20 20 20 65 78 |er int i|;. ex|
|00001120| 74 65 72 6e 20 41 52 47 | 20 2a 61 72 67 34 3b 09 |tern ARG| *arg4;.|
|00001130| 2f 2a 20 73 68 6f 75 6c | 64 20 62 65 20 6e 6f 72 |/* shoul|d be nor|
|00001140| 6d 61 6c 20 61 72 67 75 | 6d 65 6e 74 73 2c 20 72 |mal argu|ments, r|
|00001150| 65 61 6c 6c 79 20 2a 2f | 0d 20 20 20 20 65 78 74 |eally */|. ext|
|00001160| 65 72 6e 20 41 52 47 20 | 2a 61 72 67 35 3b 0d 23 |ern ARG |*arg5;.#|
|00001170| 69 66 64 65 66 20 6d 61 | 63 69 6e 74 6f 73 68 0d |ifdef ma|cintosh.|
|00001180| 20 20 20 20 65 78 74 65 | 72 6e 20 41 52 47 20 2a | exte|rn ARG *|
|00001190| 61 72 67 36 3b 0d 23 65 | 6e 64 69 66 0d 0d 20 20 |arg6;.#e|ndif.. |
|000011a0| 20 20 61 72 67 20 3d 20 | 6f 70 5f 6e 65 77 28 6e | arg = |op_new(n|
|000011b0| 65 77 6c 65 6e 29 3b 0d | 20 20 20 20 61 72 67 2d |ewlen);.| arg-|
|000011c0| 3e 61 72 67 5f 74 79 70 | 65 20 3d 20 74 79 70 65 |>arg_typ|e = type|
|000011d0| 3b 0d 20 20 20 20 2f 2a | 53 55 50 50 52 45 53 53 |;. /*|SUPPRESS|
|000011e0| 20 35 36 30 2a 2f 0d 20 | 20 20 20 69 66 20 28 63 | 560*/. | if (c|
|000011f0| 68 6c 64 20 3d 20 61 72 | 67 31 29 20 7b 0d 09 69 |hld = ar|g1) {..i|
|00001200| 66 20 28 63 68 6c 64 2d | 3e 61 72 67 5f 74 79 70 |f (chld-|>arg_typ|
|00001210| 65 20 3d 3d 20 4f 5f 49 | 54 45 4d 20 26 26 0d 09 |e == O_I|TEM &&..|
|00001220| 20 20 20 20 28 68 6f 69 | 73 74 61 62 6c 65 5b 20 | (hoi|stable[ |
|00001230| 69 20 3d 20 28 63 68 6c | 64 5b 31 5d 2e 61 72 67 |i = (chl|d[1].arg|
|00001240| 5f 74 79 70 65 26 41 5f | 4d 41 53 4b 29 5d 20 7c |_type&A_|MASK)] ||
|00001250| 7c 20 69 20 3d 3d 20 41 | 5f 4c 56 41 4c 20 7c 7c || i == A|_LVAL |||
|00001260| 0d 09 20 20 20 20 20 28 | 69 20 3d 3d 20 41 5f 4c |.. (|i == A_L|
|00001270| 45 58 50 52 20 26 26 0d | 09 20 20 20 20 20 20 28 |EXPR &&.|. (|
|00001280| 63 68 6c 64 5b 31 5d 2e | 61 72 67 5f 70 74 72 2e |chld[1].|arg_ptr.|
|00001290| 61 72 67 5f 61 72 67 2d | 3e 61 72 67 5f 74 79 70 |arg_arg-|>arg_typ|
|000012a0| 65 20 3d 3d 20 4f 5f 4c | 49 53 54 20 7c 7c 0d 09 |e == O_L|IST ||..|
|000012b0| 20 20 20 20 20 20 20 63 | 68 6c 64 5b 31 5d 2e 61 | c|hld[1].a|
|000012c0| 72 67 5f 70 74 72 2e 61 | 72 67 5f 61 72 67 2d 3e |rg_ptr.a|rg_arg->|
|000012d0| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 4f 5f 41 52 |arg_type| == O_AR|
|000012e0| 52 41 59 20 7c 7c 0d 09 | 20 20 20 20 20 20 20 63 |RAY ||..| c|
|000012f0| 68 6c 64 5b 31 5d 2e 61 | 72 67 5f 70 74 72 2e 61 |hld[1].a|rg_ptr.a|
|00001300| 72 67 5f 61 72 67 2d 3e | 61 72 67 5f 74 79 70 65 |rg_arg->|arg_type|
|00001310| 20 3d 3d 20 4f 5f 48 41 | 53 48 20 29 29 29 29 0d | == O_HA|SH )))).|
|00001320| 09 7b 0d 09 20 20 20 20 | 61 72 67 5b 31 5d 2e 61 |.{.. |arg[1].a|
|00001330| 72 67 5f 74 79 70 65 20 | 3d 20 63 68 6c 64 5b 31 |rg_type |= chld[1|
|00001340| 5d 2e 61 72 67 5f 74 79 | 70 65 3b 0d 09 20 20 20 |].arg_ty|pe;.. |
|00001350| 20 61 72 67 5b 31 5d 2e | 61 72 67 5f 70 74 72 20 | arg[1].|arg_ptr |
|00001360| 3d 20 63 68 6c 64 5b 31 | 5d 2e 61 72 67 5f 70 74 |= chld[1|].arg_pt|
|00001370| 72 3b 0d 09 20 20 20 20 | 61 72 67 5b 31 5d 2e 61 |r;.. |arg[1].a|
|00001380| 72 67 5f 66 6c 61 67 73 | 20 7c 3d 20 63 68 6c 64 |rg_flags| |= chld|
|00001390| 5b 31 5d 2e 61 72 67 5f | 66 6c 61 67 73 3b 0d 09 |[1].arg_|flags;..|
|000013a0| 20 20 20 20 61 72 67 5b | 31 5d 2e 61 72 67 5f 6c | arg[|1].arg_l|
|000013b0| 65 6e 20 3d 20 63 68 6c | 64 5b 31 5d 2e 61 72 67 |en = chl|d[1].arg|
|000013c0| 5f 6c 65 6e 3b 0d 09 20 | 20 20 20 66 72 65 65 5f |_len;.. | free_|
|000013d0| 61 72 67 28 63 68 6c 64 | 29 3b 0d 09 7d 0d 09 65 |arg(chld|);..}..e|
|000013e0| 6c 73 65 20 7b 0d 09 20 | 20 20 20 61 72 67 5b 31 |lse {.. | arg[1|
|000013f0| 5d 2e 61 72 67 5f 74 79 | 70 65 20 3d 20 41 5f 45 |].arg_ty|pe = A_E|
|00001400| 58 50 52 3b 0d 09 20 20 | 20 20 61 72 67 5b 31 5d |XPR;.. | arg[1]|
|00001410| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 61 72 67 |.arg_ptr|.arg_arg|
|00001420| 20 3d 20 63 68 6c 64 3b | 0d 09 7d 0d 20 20 20 20 | = chld;|..}. |
|00001430| 7d 0d 20 20 20 20 2f 2a | 53 55 50 50 52 45 53 53 |}. /*|SUPPRESS|
|00001440| 20 35 36 30 2a 2f 0d 20 | 20 20 20 69 66 20 28 63 | 560*/. | if (c|
|00001450| 68 6c 64 20 3d 20 61 72 | 67 32 29 20 7b 0d 09 69 |hld = ar|g2) {..i|
|00001460| 66 20 28 63 68 6c 64 2d | 3e 61 72 67 5f 74 79 70 |f (chld-|>arg_typ|
|00001470| 65 20 3d 3d 20 4f 5f 49 | 54 45 4d 20 26 26 20 0d |e == O_I|TEM && .|
|00001480| 09 20 20 20 20 28 68 6f | 69 73 74 61 62 6c 65 5b |. (ho|istable[|
|00001490| 63 68 6c 64 5b 31 5d 2e | 61 72 67 5f 74 79 70 65 |chld[1].|arg_type|
|000014a0| 26 41 5f 4d 41 53 4b 5d | 20 7c 7c 20 0d 09 20 20 |&A_MASK]| || .. |
|000014b0| 20 20 20 28 74 79 70 65 | 20 3d 3d 20 4f 5f 41 53 | (type| == O_AS|
|000014c0| 53 49 47 4e 20 26 26 20 | 0d 09 20 20 20 20 20 20 |SIGN && |.. |
|000014d0| 28 28 63 68 6c 64 5b 31 | 5d 2e 61 72 67 5f 74 79 |((chld[1|].arg_ty|
|000014e0| 70 65 20 3d 3d 20 41 5f | 52 45 41 44 20 26 26 20 |pe == A_|READ && |
|000014f0| 21 28 61 72 67 5b 31 5d | 2e 61 72 67 5f 74 79 70 |!(arg[1]|.arg_typ|
|00001500| 65 20 26 20 41 5f 44 4f | 4e 54 29 29 0d 09 09 7c |e & A_DO|NT))...||
|00001510| 7c 0d 09 20 20 20 20 20 | 20 20 28 63 68 6c 64 5b ||.. | (chld[|
|00001520| 31 5d 2e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 41 |1].arg_t|ype == A|
|00001530| 5f 49 4e 44 52 45 41 44 | 20 26 26 20 21 28 61 72 |_INDREAD| && !(ar|
|00001540| 67 5b 31 5d 2e 61 72 67 | 5f 74 79 70 65 20 26 20 |g[1].arg|_type & |
|00001550| 41 5f 44 4f 4e 54 29 29 | 0d 09 09 7c 7c 0d 09 20 |A_DONT))|...||.. |
|00001560| 20 20 20 20 20 20 28 63 | 68 6c 64 5b 31 5d 2e 61 | (c|hld[1].a|
|00001570| 72 67 5f 74 79 70 65 20 | 3d 3d 20 41 5f 47 4c 4f |rg_type |== A_GLO|
|00001580| 42 20 26 26 20 21 28 61 | 72 67 5b 31 5d 2e 61 72 |B && !(a|rg[1].ar|
|00001590| 67 5f 74 79 70 65 20 26 | 20 41 5f 44 4f 4e 54 29 |g_type &| A_DONT)|
|000015a0| 29 0d 09 20 20 20 20 20 | 20 29 20 29 20 29 20 29 |).. | ) ) ) )|
|000015b0| 20 7b 0d 09 20 20 20 20 | 61 72 67 5b 32 5d 2e 61 | {.. |arg[2].a|
|000015c0| 72 67 5f 74 79 70 65 20 | 3d 20 63 68 6c 64 5b 31 |rg_type |= chld[1|
|000015d0| 5d 2e 61 72 67 5f 74 79 | 70 65 3b 0d 09 20 20 20 |].arg_ty|pe;.. |
|000015e0| 20 61 72 67 5b 32 5d 2e | 61 72 67 5f 70 74 72 20 | arg[2].|arg_ptr |
|000015f0| 3d 20 63 68 6c 64 5b 31 | 5d 2e 61 72 67 5f 70 74 |= chld[1|].arg_pt|
|00001600| 72 3b 0d 09 20 20 20 20 | 61 72 67 5b 32 5d 2e 61 |r;.. |arg[2].a|
|00001610| 72 67 5f 6c 65 6e 20 3d | 20 63 68 6c 64 5b 31 5d |rg_len =| chld[1]|
|00001620| 2e 61 72 67 5f 6c 65 6e | 3b 0d 09 20 20 20 20 66 |.arg_len|;.. f|
|00001630| 72 65 65 5f 61 72 67 28 | 63 68 6c 64 29 3b 0d 09 |ree_arg(|chld);..|
|00001640| 7d 0d 09 65 6c 73 65 20 | 7b 0d 09 20 20 20 20 61 |}..else |{.. a|
|00001650| 72 67 5b 32 5d 2e 61 72 | 67 5f 74 79 70 65 20 3d |rg[2].ar|g_type =|
|00001660| 20 41 5f 45 58 50 52 3b | 0d 09 20 20 20 20 61 72 | A_EXPR;|.. ar|
|00001670| 67 5b 32 5d 2e 61 72 67 | 5f 70 74 72 2e 61 72 67 |g[2].arg|_ptr.arg|
|00001680| 5f 61 72 67 20 3d 20 63 | 68 6c 64 3b 0d 09 7d 0d |_arg = c|hld;..}.|
|00001690| 20 20 20 20 7d 0d 20 20 | 20 20 2f 2a 53 55 50 50 | }. | /*SUPP|
|000016a0| 52 45 53 53 20 35 36 30 | 2a 2f 0d 20 20 20 20 69 |RESS 560|*/. i|
|000016b0| 66 20 28 63 68 6c 64 20 | 3d 20 61 72 67 33 29 20 |f (chld |= arg3) |
|000016c0| 7b 0d 09 69 66 20 28 63 | 68 6c 64 2d 3e 61 72 67 |{..if (c|hld->arg|
|000016d0| 5f 74 79 70 65 20 3d 3d | 20 4f 5f 49 54 45 4d 20 |_type ==| O_ITEM |
|000016e0| 26 26 20 68 6f 69 73 74 | 61 62 6c 65 5b 63 68 6c |&& hoist|able[chl|
|000016f0| 64 5b 31 5d 2e 61 72 67 | 5f 74 79 70 65 26 41 5f |d[1].arg|_type&A_|
|00001700| 4d 41 53 4b 5d 29 20 7b | 0d 09 20 20 20 20 61 72 |MASK]) {|.. ar|
|00001710| 67 5b 33 5d 2e 61 72 67 | 5f 74 79 70 65 20 3d 20 |g[3].arg|_type = |
|00001720| 63 68 6c 64 5b 31 5d 2e | 61 72 67 5f 74 79 70 65 |chld[1].|arg_type|
|00001730| 3b 0d 09 20 20 20 20 61 | 72 67 5b 33 5d 2e 61 72 |;.. a|rg[3].ar|
|00001740| 67 5f 70 74 72 20 3d 20 | 63 68 6c 64 5b 31 5d 2e |g_ptr = |chld[1].|
|00001750| 61 72 67 5f 70 74 72 3b | 0d 09 20 20 20 20 61 72 |arg_ptr;|.. ar|
|00001760| 67 5b 33 5d 2e 61 72 67 | 5f 6c 65 6e 20 3d 20 63 |g[3].arg|_len = c|
|00001770| 68 6c 64 5b 31 5d 2e 61 | 72 67 5f 6c 65 6e 3b 0d |hld[1].a|rg_len;.|
|00001780| 09 20 20 20 20 66 72 65 | 65 5f 61 72 67 28 63 68 |. fre|e_arg(ch|
|00001790| 6c 64 29 3b 0d 09 7d 0d | 09 65 6c 73 65 20 7b 0d |ld);..}.|.else {.|
|000017a0| 09 20 20 20 20 61 72 67 | 5b 33 5d 2e 61 72 67 5f |. arg|[3].arg_|
|000017b0| 74 79 70 65 20 3d 20 41 | 5f 45 58 50 52 3b 0d 09 |type = A|_EXPR;..|
|000017c0| 20 20 20 20 61 72 67 5b | 33 5d 2e 61 72 67 5f 70 | arg[|3].arg_p|
|000017d0| 74 72 2e 61 72 67 5f 61 | 72 67 20 3d 20 63 68 6c |tr.arg_a|rg = chl|
|000017e0| 64 3b 0d 09 7d 0d 20 20 | 20 20 7d 0d 20 20 20 20 |d;..}. | }. |
|000017f0| 69 66 20 28 6e 65 77 6c | 65 6e 20 3e 3d 20 34 20 |if (newl|en >= 4 |
|00001800| 26 26 20 28 63 68 6c 64 | 20 3d 20 61 72 67 34 29 |&& (chld| = arg4)|
|00001810| 29 20 7b 0d 09 69 66 20 | 28 63 68 6c 64 2d 3e 61 |) {..if |(chld->a|
|00001820| 72 67 5f 74 79 70 65 20 | 3d 3d 20 4f 5f 49 54 45 |rg_type |== O_ITE|
|00001830| 4d 20 26 26 20 68 6f 69 | 73 74 61 62 6c 65 5b 63 |M && hoi|stable[c|
|00001840| 68 6c 64 5b 31 5d 2e 61 | 72 67 5f 74 79 70 65 26 |hld[1].a|rg_type&|
|00001850| 41 5f 4d 41 53 4b 5d 29 | 20 7b 0d 09 20 20 20 20 |A_MASK])| {.. |
|00001860| 61 72 67 5b 34 5d 2e 61 | 72 67 5f 74 79 70 65 20 |arg[4].a|rg_type |
|00001870| 3d 20 63 68 6c 64 5b 31 | 5d 2e 61 72 67 5f 74 79 |= chld[1|].arg_ty|
|00001880| 70 65 3b 0d 09 20 20 20 | 20 61 72 67 5b 34 5d 2e |pe;.. | arg[4].|
|00001890| 61 72 67 5f 70 74 72 20 | 3d 20 63 68 6c 64 5b 31 |arg_ptr |= chld[1|
|000018a0| 5d 2e 61 72 67 5f 70 74 | 72 3b 0d 09 20 20 20 20 |].arg_pt|r;.. |
|000018b0| 61 72 67 5b 34 5d 2e 61 | 72 67 5f 6c 65 6e 20 3d |arg[4].a|rg_len =|
|000018c0| 20 63 68 6c 64 5b 31 5d | 2e 61 72 67 5f 6c 65 6e | chld[1]|.arg_len|
|000018d0| 3b 0d 09 20 20 20 20 66 | 72 65 65 5f 61 72 67 28 |;.. f|ree_arg(|
|000018e0| 63 68 6c 64 29 3b 0d 09 | 7d 0d 09 65 6c 73 65 20 |chld);..|}..else |
|000018f0| 7b 0d 09 20 20 20 20 61 | 72 67 5b 34 5d 2e 61 72 |{.. a|rg[4].ar|
|00001900| 67 5f 74 79 70 65 20 3d | 20 41 5f 45 58 50 52 3b |g_type =| A_EXPR;|
|00001910| 0d 09 20 20 20 20 61 72 | 67 5b 34 5d 2e 61 72 67 |.. ar|g[4].arg|
|00001920| 5f 70 74 72 2e 61 72 67 | 5f 61 72 67 20 3d 20 63 |_ptr.arg|_arg = c|
|00001930| 68 6c 64 3b 0d 09 7d 0d | 20 20 20 20 7d 0d 20 20 |hld;..}.| }. |
|00001940| 20 20 69 66 20 28 6e 65 | 77 6c 65 6e 20 3e 3d 20 | if (ne|wlen >= |
|00001950| 35 20 26 26 20 28 63 68 | 6c 64 20 3d 20 61 72 67 |5 && (ch|ld = arg|
|00001960| 35 29 29 20 7b 0d 09 69 | 66 20 28 63 68 6c 64 2d |5)) {..i|f (chld-|
|00001970| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 49 |>arg_typ|e == O_I|
|00001980| 54 45 4d 20 26 26 20 68 | 6f 69 73 74 61 62 6c 65 |TEM && h|oistable|
|00001990| 5b 63 68 6c 64 5b 31 5d | 2e 61 72 67 5f 74 79 70 |[chld[1]|.arg_typ|
|000019a0| 65 26 41 5f 4d 41 53 4b | 5d 29 20 7b 0d 09 20 20 |e&A_MASK|]) {.. |
|000019b0| 20 20 61 72 67 5b 35 5d | 2e 61 72 67 5f 74 79 70 | arg[5]|.arg_typ|
|000019c0| 65 20 3d 20 63 68 6c 64 | 5b 31 5d 2e 61 72 67 5f |e = chld|[1].arg_|
|000019d0| 74 79 70 65 3b 0d 09 20 | 20 20 20 61 72 67 5b 35 |type;.. | arg[5|
|000019e0| 5d 2e 61 72 67 5f 70 74 | 72 20 3d 20 63 68 6c 64 |].arg_pt|r = chld|
|000019f0| 5b 31 5d 2e 61 72 67 5f | 70 74 72 3b 0d 09 20 20 |[1].arg_|ptr;.. |
|00001a00| 20 20 61 72 67 5b 35 5d | 2e 61 72 67 5f 6c 65 6e | arg[5]|.arg_len|
|00001a10| 20 3d 20 63 68 6c 64 5b | 31 5d 2e 61 72 67 5f 6c | = chld[|1].arg_l|
|00001a20| 65 6e 3b 0d 09 20 20 20 | 20 66 72 65 65 5f 61 72 |en;.. | free_ar|
|00001a30| 67 28 63 68 6c 64 29 3b | 0d 09 7d 0d 09 65 6c 73 |g(chld);|..}..els|
|00001a40| 65 20 7b 0d 09 20 20 20 | 20 61 72 67 5b 35 5d 2e |e {.. | arg[5].|
|00001a50| 61 72 67 5f 74 79 70 65 | 20 3d 20 41 5f 45 58 50 |arg_type| = A_EXP|
|00001a60| 52 3b 0d 09 20 20 20 20 | 61 72 67 5b 35 5d 2e 61 |R;.. |arg[5].a|
|00001a70| 72 67 5f 70 74 72 2e 61 | 72 67 5f 61 72 67 20 3d |rg_ptr.a|rg_arg =|
|00001a80| 20 63 68 6c 64 3b 0d 09 | 7d 0d 20 20 20 20 7d 0d | chld;..|}. }.|
|00001a90| 23 69 66 64 65 66 20 6d | 61 63 69 6e 74 6f 73 68 |#ifdef m|acintosh|
|00001aa0| 0d 20 20 20 20 69 66 20 | 28 6e 65 77 6c 65 6e 20 |. if |(newlen |
|00001ab0| 3e 3d 20 36 20 26 26 20 | 28 63 68 6c 64 20 3d 20 |>= 6 && |(chld = |
|00001ac0| 61 72 67 36 29 29 20 7b | 0d 09 69 66 20 28 63 68 |arg6)) {|..if (ch|
|00001ad0| 6c 64 2d 3e 61 72 67 5f | 74 79 70 65 20 3d 3d 20 |ld->arg_|type == |
|00001ae0| 4f 5f 49 54 45 4d 20 26 | 26 20 68 6f 69 73 74 61 |O_ITEM &|& hoista|
|00001af0| 62 6c 65 5b 63 68 6c 64 | 5b 31 5d 2e 61 72 67 5f |ble[chld|[1].arg_|
|00001b00| 74 79 70 65 26 41 5f 4d | 41 53 4b 5d 29 20 7b 0d |type&A_M|ASK]) {.|
|00001b10| 09 20 20 20 20 61 72 67 | 5b 36 5d 2e 61 72 67 5f |. arg|[6].arg_|
|00001b20| 74 79 70 65 20 3d 20 63 | 68 6c 64 5b 31 5d 2e 61 |type = c|hld[1].a|
|00001b30| 72 67 5f 74 79 70 65 3b | 0d 09 20 20 20 20 61 72 |rg_type;|.. ar|
|00001b40| 67 5b 36 5d 2e 61 72 67 | 5f 70 74 72 20 3d 20 63 |g[6].arg|_ptr = c|
|00001b50| 68 6c 64 5b 31 5d 2e 61 | 72 67 5f 70 74 72 3b 0d |hld[1].a|rg_ptr;.|
|00001b60| 09 20 20 20 20 61 72 67 | 5b 36 5d 2e 61 72 67 5f |. arg|[6].arg_|
|00001b70| 6c 65 6e 20 3d 20 63 68 | 6c 64 5b 31 5d 2e 61 72 |len = ch|ld[1].ar|
|00001b80| 67 5f 6c 65 6e 3b 0d 09 | 20 20 20 20 66 72 65 65 |g_len;..| free|
|00001b90| 5f 61 72 67 28 63 68 6c | 64 29 3b 0d 09 7d 0d 09 |_arg(chl|d);..}..|
|00001ba0| 65 6c 73 65 20 7b 0d 09 | 20 20 20 20 61 72 67 5b |else {..| arg[|
|00001bb0| 36 5d 2e 61 72 67 5f 74 | 79 70 65 20 3d 20 41 5f |6].arg_t|ype = A_|
|00001bc0| 45 58 50 52 3b 0d 09 20 | 20 20 20 61 72 67 5b 36 |EXPR;.. | arg[6|
|00001bd0| 5d 2e 61 72 67 5f 70 74 | 72 2e 61 72 67 5f 61 72 |].arg_pt|r.arg_ar|
|00001be0| 67 20 3d 20 63 68 6c 64 | 3b 0d 09 7d 0d 20 20 20 |g = chld|;..}. |
|00001bf0| 20 7d 0d 23 65 6e 64 69 | 66 0d 20 20 20 20 64 6f | }.#endi|f. do|
|00001c00| 61 72 67 20 3d 20 6f 70 | 61 72 67 73 5b 74 79 70 |arg = op|args[typ|
|00001c10| 65 5d 3b 0d 20 20 20 20 | 66 6f 72 20 28 69 20 3d |e];. |for (i =|
|00001c20| 20 31 3b 20 69 20 3c 3d | 20 6e 65 77 6c 65 6e 3b | 1; i <=| newlen;|
|00001c30| 20 2b 2b 69 29 20 7b 0d | 09 69 66 20 28 21 28 64 | ++i) {.|.if (!(d|
|00001c40| 6f 61 72 67 20 26 20 31 | 29 29 0d 09 20 20 20 20 |oarg & 1|)).. |
|00001c50| 61 72 67 5b 69 5d 2e 61 | 72 67 5f 74 79 70 65 20 |arg[i].a|rg_type |
|00001c60| 7c 3d 20 41 5f 44 4f 4e | 54 3b 0d 09 69 66 20 28 ||= A_DON|T;..if (|
|00001c70| 64 6f 61 72 67 20 26 20 | 32 29 0d 09 20 20 20 20 |doarg & |2).. |
|00001c80| 61 72 67 5b 69 5d 2e 61 | 72 67 5f 66 6c 61 67 73 |arg[i].a|rg_flags|
|00001c90| 20 7c 3d 20 41 46 5f 41 | 52 59 4f 4b 3b 0d 09 64 | |= AF_A|RYOK;..d|
|00001ca0| 6f 61 72 67 20 3e 3e 3d | 20 32 3b 0d 20 20 20 20 |oarg >>=| 2;. |
|00001cb0| 7d 0d 23 69 66 64 65 66 | 20 44 45 42 55 47 47 49 |}.#ifdef| DEBUGGI|
|00001cc0| 4e 47 0d 20 20 20 20 69 | 66 20 28 64 65 62 75 67 |NG. i|f (debug|
|00001cd0| 20 26 20 31 36 29 20 7b | 0d 09 66 70 72 69 6e 74 | & 16) {|..fprint|
|00001ce0| 66 28 73 74 64 65 72 72 | 2c 22 25 6c 78 20 3c 3d |f(stderr|,"%lx <=|
|00001cf0| 20 6d 61 6b 65 5f 6f 70 | 28 25 73 22 2c 61 72 67 | make_op|(%s",arg|
|00001d00| 2c 6f 70 6e 61 6d 65 5b | 61 72 67 2d 3e 61 72 67 |,opname[|arg->arg|
|00001d10| 5f 74 79 70 65 5d 29 3b | 0d 09 69 66 20 28 61 72 |_type]);|..if (ar|
|00001d20| 67 31 29 0d 09 20 20 20 | 20 66 70 72 69 6e 74 66 |g1).. | fprintf|
|00001d30| 28 73 74 64 65 72 72 2c | 22 2c 25 73 3d 25 6c 78 |(stderr,|",%s=%lx|
|00001d40| 22 2c 0d 09 09 61 72 67 | 6e 61 6d 65 5b 61 72 67 |",...arg|name[arg|
|00001d50| 5b 31 5d 2e 61 72 67 5f | 74 79 70 65 26 41 5f 4d |[1].arg_|type&A_M|
|00001d60| 41 53 4b 5d 2c 61 72 67 | 5b 31 5d 2e 61 72 67 5f |ASK],arg|[1].arg_|
|00001d70| 70 74 72 2e 61 72 67 5f | 61 72 67 29 3b 0d 09 69 |ptr.arg_|arg);..i|
|00001d80| 66 20 28 61 72 67 32 29 | 0d 09 20 20 20 20 66 70 |f (arg2)|.. fp|
|00001d90| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 22 2c 25 |rintf(st|derr,",%|
|00001da0| 73 3d 25 6c 78 22 2c 0d | 09 09 61 72 67 6e 61 6d |s=%lx",.|..argnam|
|00001db0| 65 5b 61 72 67 5b 32 5d | 2e 61 72 67 5f 74 79 70 |e[arg[2]|.arg_typ|
|00001dc0| 65 26 41 5f 4d 41 53 4b | 5d 2c 61 72 67 5b 32 5d |e&A_MASK|],arg[2]|
|00001dd0| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 61 72 67 |.arg_ptr|.arg_arg|
|00001de0| 29 3b 0d 09 69 66 20 28 | 61 72 67 33 29 0d 09 20 |);..if (|arg3).. |
|00001df0| 20 20 20 66 70 72 69 6e | 74 66 28 73 74 64 65 72 | fprin|tf(stder|
|00001e00| 72 2c 22 2c 25 73 3d 25 | 6c 78 22 2c 0d 09 09 61 |r,",%s=%|lx",...a|
|00001e10| 72 67 6e 61 6d 65 5b 61 | 72 67 5b 33 5d 2e 61 72 |rgname[a|rg[3].ar|
|00001e20| 67 5f 74 79 70 65 26 41 | 5f 4d 41 53 4b 5d 2c 61 |g_type&A|_MASK],a|
|00001e30| 72 67 5b 33 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |rg[3].ar|g_ptr.ar|
|00001e40| 67 5f 61 72 67 29 3b 0d | 09 69 66 20 28 6e 65 77 |g_arg);.|.if (new|
|00001e50| 6c 65 6e 20 3e 3d 20 34 | 29 0d 09 20 20 20 20 66 |len >= 4|).. f|
|00001e60| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 22 2c |printf(s|tderr,",|
|00001e70| 25 73 3d 25 6c 78 22 2c | 0d 09 09 61 72 67 6e 61 |%s=%lx",|...argna|
|00001e80| 6d 65 5b 61 72 67 5b 34 | 5d 2e 61 72 67 5f 74 79 |me[arg[4|].arg_ty|
|00001e90| 70 65 26 41 5f 4d 41 53 | 4b 5d 2c 61 72 67 5b 34 |pe&A_MAS|K],arg[4|
|00001ea0| 5d 2e 61 72 67 5f 70 74 | 72 2e 61 72 67 5f 61 72 |].arg_pt|r.arg_ar|
|00001eb0| 67 29 3b 0d 09 69 66 20 | 28 6e 65 77 6c 65 6e 20 |g);..if |(newlen |
|00001ec0| 3e 3d 20 35 29 0d 09 20 | 20 20 20 66 70 72 69 6e |>= 5).. | fprin|
|00001ed0| 74 66 28 73 74 64 65 72 | 72 2c 22 2c 25 73 3d 25 |tf(stder|r,",%s=%|
|00001ee0| 6c 78 22 2c 0d 09 09 61 | 72 67 6e 61 6d 65 5b 61 |lx",...a|rgname[a|
|00001ef0| 72 67 5b 35 5d 2e 61 72 | 67 5f 74 79 70 65 26 41 |rg[5].ar|g_type&A|
|00001f00| 5f 4d 41 53 4b 5d 2c 61 | 72 67 5b 35 5d 2e 61 72 |_MASK],a|rg[5].ar|
|00001f10| 67 5f 70 74 72 2e 61 72 | 67 5f 61 72 67 29 3b 0d |g_ptr.ar|g_arg);.|
|00001f20| 23 69 66 64 65 66 20 6d | 61 63 69 6e 74 6f 73 68 |#ifdef m|acintosh|
|00001f30| 0d 09 69 66 20 28 6e 65 | 77 6c 65 6e 20 3e 3d 20 |..if (ne|wlen >= |
|00001f40| 36 29 0d 09 20 20 20 20 | 66 70 72 69 6e 74 66 28 |6).. |fprintf(|
|00001f50| 73 74 64 65 72 72 2c 22 | 2c 25 73 3d 25 6c 78 22 |stderr,"|,%s=%lx"|
|00001f60| 2c 0d 09 09 61 72 67 6e | 61 6d 65 5b 61 72 67 5b |,...argn|ame[arg[|
|00001f70| 36 5d 2e 61 72 67 5f 74 | 79 70 65 26 41 5f 4d 41 |6].arg_t|ype&A_MA|
|00001f80| 53 4b 5d 2c 61 72 67 5b | 36 5d 2e 61 72 67 5f 70 |SK],arg[|6].arg_p|
|00001f90| 74 72 2e 61 72 67 5f 61 | 72 67 29 3b 0d 23 65 6e |tr.arg_a|rg);.#en|
|00001fa0| 64 69 66 0d 09 66 70 72 | 69 6e 74 66 28 73 74 64 |dif..fpr|intf(std|
|00001fb0| 65 72 72 2c 22 29 5c 6e | 22 29 3b 0d 20 20 20 20 |err,")\n|");. |
|00001fc0| 7d 0d 23 65 6e 64 69 66 | 0d 20 20 20 20 61 72 67 |}.#endif|. arg|
|00001fd0| 20 3d 20 65 76 61 6c 73 | 74 61 74 69 63 28 61 72 | = evals|tatic(ar|
|00001fe0| 67 29 3b 09 2f 2a 20 73 | 65 65 20 69 66 20 77 65 |g);./* s|ee if we|
|00001ff0| 20 63 61 6e 20 63 6f 6e | 73 6f 6c 69 64 61 74 65 | can con|solidate|
|00002000| 20 61 6e 79 74 68 69 6e | 67 20 2a 2f 0d 20 20 20 | anythin|g */. |
|00002010| 20 72 65 74 75 72 6e 20 | 61 72 67 3b 0d 7d 0d 0d | return |arg;.}..|
|00002020| 23 69 66 64 65 66 20 6d | 61 63 69 6e 74 6f 73 68 |#ifdef m|acintosh|
|00002030| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 4d 61 74 68 2e |.#includ|e <Math.|
|00002040| 68 3e 0d 23 65 6e 64 69 | 66 0d 0d 41 52 47 20 2a |h>.#endi|f..ARG *|
|00002050| 0d 65 76 61 6c 73 74 61 | 74 69 63 28 61 72 67 29 |.evalsta|tic(arg)|
|00002060| 0d 72 65 67 69 73 74 65 | 72 20 41 52 47 20 2a 61 |.registe|r ARG *a|
|00002070| 72 67 3b 0d 7b 0d 20 20 | 20 20 73 74 61 74 69 63 |rg;.{. | static|
|00002080| 20 53 54 52 20 2a 73 74 | 72 20 3d 20 4e 75 6c 6c | STR *st|r = Null|
|00002090| 73 74 72 3b 0d 20 20 20 | 20 72 65 67 69 73 74 65 |str;. | registe|
|000020a0| 72 20 53 54 52 20 2a 73 | 31 3b 0d 20 20 20 20 72 |r STR *s|1;. r|
|000020b0| 65 67 69 73 74 65 72 20 | 53 54 52 20 2a 73 32 3b |egister |STR *s2;|
|000020c0| 0d 20 20 20 20 64 6f 75 | 62 6c 65 20 76 61 6c 75 |. dou|ble valu|
|000020d0| 65 3b 09 09 2f 2a 20 6d | 75 73 74 20 6e 6f 74 20 |e;../* m|ust not |
|000020e0| 62 65 20 72 65 67 69 73 | 74 65 72 20 2a 2f 0d 20 |be regis|ter */. |
|000020f0| 20 20 20 72 65 67 69 73 | 74 65 72 20 63 68 61 72 | regis|ter char|
|00002100| 20 2a 74 6d 70 73 3b 0d | 20 20 20 20 69 6e 74 20 | *tmps;.| int |
|00002110| 69 3b 0d 20 20 20 20 75 | 6e 73 69 67 6e 65 64 20 |i;. u|nsigned |
|00002120| 6c 6f 6e 67 20 74 6d 70 | 6c 6f 6e 67 3b 0d 20 20 |long tmp|long;. |
|00002130| 20 20 6c 6f 6e 67 20 74 | 6d 70 32 3b 0d 20 20 20 | long t|mp2;. |
|00002140| 20 63 68 61 72 20 2a 63 | 72 79 70 74 28 29 3b 0d | char *c|rypt();.|
|00002150| 23 69 66 6e 64 65 66 20 | 6d 61 63 69 6e 74 6f 73 |#ifndef |macintos|
|00002160| 68 0d 20 20 20 20 64 6f | 75 62 6c 65 20 65 78 70 |h. do|uble exp|
|00002170| 28 29 2c 20 6c 6f 67 28 | 29 2c 20 73 71 72 74 28 |(), log(|), sqrt(|
|00002180| 29 2c 20 6d 6f 64 66 28 | 29 3b 0d 20 20 20 20 64 |), modf(|);. d|
|00002190| 6f 75 62 6c 65 20 73 69 | 6e 28 29 2c 20 63 6f 73 |ouble si|n(), cos|
|000021a0| 28 29 2c 20 61 74 61 6e | 32 28 29 2c 20 70 6f 77 |(), atan|2(), pow|
|000021b0| 28 29 3b 0d 23 65 6e 64 | 69 66 0d 0d 20 20 20 20 |();.#end|if.. |
|000021c0| 69 66 20 28 21 61 72 67 | 20 7c 7c 20 21 61 72 67 |if (!arg| || !arg|
|000021d0| 2d 3e 61 72 67 5f 6c 65 | 6e 29 0d 09 72 65 74 75 |->arg_le|n)..retu|
|000021e0| 72 6e 20 61 72 67 3b 0d | 0d 20 20 20 20 69 66 20 |rn arg;.|. if |
|000021f0| 28 21 73 74 72 29 0d 09 | 73 74 72 20 3d 20 53 74 |(!str)..|str = St|
|00002200| 72 5f 6e 65 77 28 32 30 | 2c 30 29 3b 0d 0d 20 20 |r_new(20|,0);.. |
|00002210| 20 20 69 66 20 28 61 72 | 67 5b 31 5d 2e 61 72 67 | if (ar|g[1].arg|
|00002220| 5f 74 79 70 65 20 3d 3d | 20 41 5f 53 49 4e 47 4c |_type ==| A_SINGL|
|00002230| 45 29 0d 09 73 31 20 3d | 20 61 72 67 5b 31 5d 2e |E)..s1 =| arg[1].|
|00002240| 61 72 67 5f 70 74 72 2e | 61 72 67 5f 73 74 72 3b |arg_ptr.|arg_str;|
|00002250| 0d 20 20 20 20 65 6c 73 | 65 0d 09 73 31 20 3d 20 |. els|e..s1 = |
|00002260| 4e 75 6c 6c 73 74 72 3b | 0d 20 20 20 20 69 66 20 |Nullstr;|. if |
|00002270| 28 61 72 67 2d 3e 61 72 | 67 5f 6c 65 6e 20 3e 3d |(arg->ar|g_len >=|
|00002280| 20 32 20 26 26 20 61 72 | 67 5b 32 5d 2e 61 72 67 | 2 && ar|g[2].arg|
|00002290| 5f 74 79 70 65 20 3d 3d | 20 41 5f 53 49 4e 47 4c |_type ==| A_SINGL|
|000022a0| 45 29 0d 09 73 32 20 3d | 20 61 72 67 5b 32 5d 2e |E)..s2 =| arg[2].|
|000022b0| 61 72 67 5f 70 74 72 2e | 61 72 67 5f 73 74 72 3b |arg_ptr.|arg_str;|
|000022c0| 0d 20 20 20 20 65 6c 73 | 65 0d 09 73 32 20 3d 20 |. els|e..s2 = |
|000022d0| 4e 75 6c 6c 73 74 72 3b | 0d 0d 23 64 65 66 69 6e |Nullstr;|..#defin|
|000022e0| 65 20 43 48 45 43 4b 31 | 20 69 66 20 28 21 73 31 |e CHECK1| if (!s1|
|000022f0| 29 20 72 65 74 75 72 6e | 20 61 72 67 0d 23 64 65 |) return| arg.#de|
|00002300| 66 69 6e 65 20 43 48 45 | 43 4b 32 20 69 66 20 28 |fine CHE|CK2 if (|
|00002310| 21 73 32 29 20 72 65 74 | 75 72 6e 20 61 72 67 0d |!s2) ret|urn arg.|
|00002320| 23 64 65 66 69 6e 65 20 | 43 48 45 43 4b 31 32 20 |#define |CHECK12 |
|00002330| 69 66 20 28 21 73 31 20 | 7c 7c 20 21 73 32 29 20 |if (!s1 ||| !s2) |
|00002340| 72 65 74 75 72 6e 20 61 | 72 67 0d 0d 20 20 20 20 |return a|rg.. |
|00002350| 73 77 69 74 63 68 20 28 | 61 72 67 2d 3e 61 72 67 |switch (|arg->arg|
|00002360| 5f 74 79 70 65 29 20 7b | 0d 20 20 20 20 64 65 66 |_type) {|. def|
|00002370| 61 75 6c 74 3a 0d 09 72 | 65 74 75 72 6e 20 61 72 |ault:..r|eturn ar|
|00002380| 67 3b 0d 20 20 20 20 63 | 61 73 65 20 4f 5f 53 4f |g;. c|ase O_SO|
|00002390| 52 54 3a 0d 09 69 66 20 | 28 61 72 67 5b 31 5d 2e |RT:..if |(arg[1].|
|000023a0| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 41 5f 43 4d |arg_type| == A_CM|
|000023b0| 44 29 0d 09 20 20 20 20 | 61 72 67 5b 31 5d 2e 61 |D).. |arg[1].a|
|000023c0| 72 67 5f 74 79 70 65 20 | 7c 3d 20 41 5f 44 4f 4e |rg_type ||= A_DON|
|000023d0| 54 3b 0d 09 72 65 74 75 | 72 6e 20 61 72 67 3b 0d |T;..retu|rn arg;.|
|000023e0| 20 20 20 20 63 61 73 65 | 20 4f 5f 45 56 41 4c 3a | case| O_EVAL:|
|000023f0| 0d 09 69 66 20 28 61 72 | 67 5b 31 5d 2e 61 72 67 |..if (ar|g[1].arg|
|00002400| 5f 74 79 70 65 20 3d 3d | 20 41 5f 43 4d 44 29 20 |_type ==| A_CMD) |
|00002410| 7b 0d 09 20 20 20 20 61 | 72 67 2d 3e 61 72 67 5f |{.. a|rg->arg_|
|00002420| 74 79 70 65 20 3d 20 4f | 5f 54 52 59 3b 0d 09 20 |type = O|_TRY;.. |
|00002430| 20 20 20 61 72 67 5b 31 | 5d 2e 61 72 67 5f 74 79 | arg[1|].arg_ty|
|00002440| 70 65 20 7c 3d 20 41 5f | 44 4f 4e 54 3b 0d 09 20 |pe |= A_|DONT;.. |
|00002450| 20 20 20 72 65 74 75 72 | 6e 20 61 72 67 3b 0d 09 | retur|n arg;..|
|00002460| 7d 0d 09 43 48 45 43 4b | 31 3b 0d 09 61 72 67 2d |}..CHECK|1;..arg-|
|00002470| 3e 61 72 67 5f 74 79 70 | 65 20 3d 20 4f 5f 45 56 |>arg_typ|e = O_EV|
|00002480| 41 4c 4f 4e 43 45 3b 0d | 09 72 65 74 75 72 6e 20 |ALONCE;.|.return |
|00002490| 61 72 67 3b 0d 20 20 20 | 20 63 61 73 65 20 4f 5f |arg;. | case O_|
|000024a0| 41 45 4c 45 4d 3a 0d 09 | 43 48 45 43 4b 32 3b 0d |AELEM:..|CHECK2;.|
|000024b0| 09 69 20 3d 20 28 69 6e | 74 29 73 74 72 5f 67 6e |.i = (in|t)str_gn|
|000024c0| 75 6d 28 73 32 29 3b 0d | 09 69 66 20 28 69 20 3c |um(s2);.|.if (i <|
|000024d0| 20 33 32 37 36 37 20 26 | 26 20 69 20 3e 3d 20 30 | 32767 &|& i >= 0|
|000024e0| 29 20 7b 0d 09 20 20 20 | 20 61 72 67 2d 3e 61 72 |) {.. | arg->ar|
|000024f0| 67 5f 74 79 70 65 20 3d | 20 4f 5f 49 54 45 4d 3b |g_type =| O_ITEM;|
|00002500| 0d 09 20 20 20 20 61 72 | 67 2d 3e 61 72 67 5f 6c |.. ar|g->arg_l|
|00002510| 65 6e 20 3d 20 31 3b 0d | 09 20 20 20 20 61 72 67 |en = 1;.|. arg|
|00002520| 5b 31 5d 2e 61 72 67 5f | 74 79 70 65 20 3d 20 41 |[1].arg_|type = A|
|00002530| 5f 41 52 59 53 54 41 42 | 3b 09 2f 2a 20 24 61 62 |_ARYSTAB|;./* $ab|
|00002540| 63 5b 31 32 33 5d 20 69 | 73 20 68 6f 69 73 74 61 |c[123] i|s hoista|
|00002550| 62 6c 65 20 6e 6f 77 20 | 2a 2f 0d 09 20 20 20 20 |ble now |*/.. |
|00002560| 61 72 67 5b 31 5d 2e 61 | 72 67 5f 6c 65 6e 20 3d |arg[1].a|rg_len =|
|00002570| 20 69 3b 0d 09 20 20 20 | 20 73 74 72 5f 66 72 65 | i;.. | str_fre|
|00002580| 65 28 73 32 29 3b 0d 09 | 20 20 20 20 52 65 6e 65 |e(s2);..| Rene|
|00002590| 77 28 61 72 67 2c 20 32 | 2c 20 41 52 47 29 3b 0d |w(arg, 2|, ARG);.|
|000025a0| 09 7d 0d 09 72 65 74 75 | 72 6e 20 61 72 67 3b 0d |.}..retu|rn arg;.|
|000025b0| 20 20 20 20 63 61 73 65 | 20 4f 5f 43 4f 4e 43 41 | case| O_CONCA|
|000025c0| 54 3a 0d 09 43 48 45 43 | 4b 31 32 3b 0d 09 73 74 |T:..CHEC|K12;..st|
|000025d0| 72 5f 73 73 65 74 28 73 | 74 72 2c 73 31 29 3b 0d |r_sset(s|tr,s1);.|
|000025e0| 09 73 74 72 5f 73 63 61 | 74 28 73 74 72 2c 73 32 |.str_sca|t(str,s2|
|000025f0| 29 3b 0d 09 62 72 65 61 | 6b 3b 0d 20 20 20 20 63 |);..brea|k;. c|
|00002600| 61 73 65 20 4f 5f 52 45 | 50 45 41 54 3a 0d 09 43 |ase O_RE|PEAT:..C|
|00002610| 48 45 43 4b 32 3b 0d 09 | 69 66 20 28 64 6f 77 61 |HECK2;..|if (dowa|
|00002620| 72 6e 20 26 26 20 21 73 | 32 2d 3e 73 74 72 5f 6e |rn && !s|2->str_n|
|00002630| 6f 6b 20 26 26 20 21 6c | 6f 6f 6b 73 5f 6c 69 6b |ok && !l|ooks_lik|
|00002640| 65 5f 6e 75 6d 62 65 72 | 28 73 32 29 29 0d 09 20 |e_number|(s2)).. |
|00002650| 20 20 20 77 61 72 6e 28 | 22 52 69 67 68 74 20 6f | warn(|"Right o|
|00002660| 70 65 72 61 6e 64 20 6f | 66 20 78 20 69 73 20 6e |perand o|f x is n|
|00002670| 6f 74 20 6e 75 6d 65 72 | 69 63 22 29 3b 0d 09 43 |ot numer|ic");..C|
|00002680| 48 45 43 4b 31 3b 0d 09 | 69 20 3d 20 28 69 6e 74 |HECK1;..|i = (int|
|00002690| 29 73 74 72 5f 67 6e 75 | 6d 28 73 32 29 3b 0d 09 |)str_gnu|m(s2);..|
|000026a0| 74 6d 70 73 20 3d 20 73 | 74 72 5f 67 65 74 28 73 |tmps = s|tr_get(s|
|000026b0| 31 29 3b 0d 09 73 74 72 | 5f 6e 73 65 74 28 73 74 |1);..str|_nset(st|
|000026c0| 72 2c 22 22 2c 30 29 3b | 0d 09 69 66 20 28 69 20 |r,"",0);|..if (i |
|000026d0| 3e 20 30 29 20 7b 0d 09 | 20 20 20 20 53 54 52 5f |> 0) {..| STR_|
|000026e0| 47 52 4f 57 28 73 74 72 | 2c 20 69 20 2a 20 73 31 |GROW(str|, i * s1|
|000026f0| 2d 3e 73 74 72 5f 63 75 | 72 20 2b 20 31 29 3b 0d |->str_cu|r + 1);.|
|00002700| 09 20 20 20 20 72 65 70 | 65 61 74 63 70 79 28 73 |. rep|eatcpy(s|
|00002710| 74 72 2d 3e 73 74 72 5f | 70 74 72 2c 20 74 6d 70 |tr->str_|ptr, tmp|
|00002720| 73 2c 20 73 31 2d 3e 73 | 74 72 5f 63 75 72 2c 20 |s, s1->s|tr_cur, |
|00002730| 69 29 3b 0d 09 20 20 20 | 20 73 74 72 2d 3e 73 74 |i);.. | str->st|
|00002740| 72 5f 63 75 72 20 3d 20 | 69 20 2a 20 73 31 2d 3e |r_cur = |i * s1->|
|00002750| 73 74 72 5f 63 75 72 3b | 0d 09 20 20 20 20 73 74 |str_cur;|.. st|
|00002760| 72 2d 3e 73 74 72 5f 70 | 74 72 5b 73 74 72 2d 3e |r->str_p|tr[str->|
|00002770| 73 74 72 5f 63 75 72 5d | 20 3d 20 27 5c 30 27 3b |str_cur]| = '\0';|
|00002780| 0d 09 7d 0d 09 62 72 65 | 61 6b 3b 0d 20 20 20 20 |..}..bre|ak;. |
|00002790| 63 61 73 65 20 4f 5f 4d | 55 4c 54 49 50 4c 59 3a |case O_M|ULTIPLY:|
|000027a0| 0d 09 43 48 45 43 4b 31 | 32 3b 0d 09 76 61 6c 75 |..CHECK1|2;..valu|
|000027b0| 65 20 3d 20 73 74 72 5f | 67 6e 75 6d 28 73 31 29 |e = str_|gnum(s1)|
|000027c0| 3b 0d 09 73 74 72 5f 6e | 75 6d 73 65 74 28 73 74 |;..str_n|umset(st|
|000027d0| 72 2c 76 61 6c 75 65 20 | 2a 20 73 74 72 5f 67 6e |r,value |* str_gn|
|000027e0| 75 6d 28 73 32 29 29 3b | 0d 09 62 72 65 61 6b 3b |um(s2));|..break;|
|000027f0| 0d 20 20 20 20 63 61 73 | 65 20 4f 5f 44 49 56 49 |. cas|e O_DIVI|
|00002800| 44 45 3a 0d 09 43 48 45 | 43 4b 31 32 3b 0d 09 76 |DE:..CHE|CK12;..v|
|00002810| 61 6c 75 65 20 3d 20 73 | 74 72 5f 67 6e 75 6d 28 |alue = s|tr_gnum(|
|00002820| 73 32 29 3b 0d 09 69 66 | 20 28 76 61 6c 75 65 20 |s2);..if| (value |
|00002830| 3d 3d 20 30 2e 30 29 0d | 09 20 20 20 20 79 79 65 |== 0.0).|. yye|
|00002840| 72 72 6f 72 28 22 49 6c | 6c 65 67 61 6c 20 64 69 |rror("Il|legal di|
|00002850| 76 69 73 69 6f 6e 20 62 | 79 20 63 6f 6e 73 74 61 |vision b|y consta|
|00002860| 6e 74 20 7a 65 72 6f 22 | 29 3b 0d 09 65 6c 73 65 |nt zero"|);..else|
|00002870| 0d 23 69 66 64 65 66 20 | 53 4c 4f 50 50 59 44 49 |.#ifdef |SLOPPYDI|
|00002880| 56 49 44 45 0d 09 2f 2a | 20 69 6e 73 75 72 65 20 |VIDE../*| insure |
|00002890| 74 68 61 74 20 32 30 2e | 2f 35 2e 20 3d 3d 20 34 |that 20.|/5. == 4|
|000028a0| 2e 20 2a 2f 0d 09 7b 0d | 09 20 20 20 20 64 6f 75 |. */..{.|. dou|
|000028b0| 62 6c 65 20 78 3b 0d 09 | 20 20 20 20 69 6e 74 20 |ble x;..| int |
|000028c0| 20 20 20 6b 3b 0d 09 20 | 20 20 20 78 20 3d 20 20 | k;.. | x = |
|000028d0| 73 74 72 5f 67 6e 75 6d | 28 73 31 29 3b 0d 09 20 |str_gnum|(s1);.. |
|000028e0| 20 20 20 69 66 20 28 28 | 64 6f 75 62 6c 65 29 28 | if ((|double)(|
|000028f0| 69 6e 74 29 78 20 20 20 | 20 20 3d 3d 20 78 20 26 |int)x | == x &|
|00002900| 26 0d 09 09 28 64 6f 75 | 62 6c 65 29 28 69 6e 74 |&...(dou|ble)(int|
|00002910| 29 76 61 6c 75 65 20 3d | 3d 20 76 61 6c 75 65 20 |)value =|= value |
|00002920| 26 26 0d 09 09 28 6b 20 | 3d 20 28 69 6e 74 29 78 |&&...(k |= (int)x|
|00002930| 2f 28 69 6e 74 29 76 61 | 6c 75 65 29 2a 28 69 6e |/(int)va|lue)*(in|
|00002940| 74 29 76 61 6c 75 65 20 | 3d 3d 20 28 69 6e 74 29 |t)value |== (int)|
|00002950| 78 29 20 7b 0d 09 09 76 | 61 6c 75 65 20 3d 20 6b |x) {...v|alue = k|
|00002960| 3b 0d 09 20 20 20 20 7d | 20 65 6c 73 65 20 7b 0d |;.. }| else {.|
|00002970| 09 09 76 61 6c 75 65 20 | 3d 20 78 2f 76 61 6c 75 |..value |= x/valu|
|00002980| 65 3b 0d 09 20 20 20 20 | 7d 0d 09 20 20 20 20 73 |e;.. |}.. s|
|00002990| 74 72 5f 6e 75 6d 73 65 | 74 28 73 74 72 2c 76 61 |tr_numse|t(str,va|
|000029a0| 6c 75 65 29 3b 0d 09 7d | 0d 23 65 6c 73 65 0d 09 |lue);..}|.#else..|
|000029b0| 73 74 72 5f 6e 75 6d 73 | 65 74 28 73 74 72 2c 73 |str_nums|et(str,s|
|000029c0| 74 72 5f 67 6e 75 6d 28 | 73 31 29 20 2f 20 76 61 |tr_gnum(|s1) / va|
|000029d0| 6c 75 65 29 3b 0d 23 65 | 6e 64 69 66 0d 09 62 72 |lue);.#e|ndif..br|
|000029e0| 65 61 6b 3b 0d 20 20 20 | 20 63 61 73 65 20 4f 5f |eak;. | case O_|
|000029f0| 4d 4f 44 55 4c 4f 3a 0d | 09 43 48 45 43 4b 31 32 |MODULO:.|.CHECK12|
|00002a00| 3b 0d 09 74 6d 70 6c 6f | 6e 67 20 3d 20 28 75 6e |;..tmplo|ng = (un|
|00002a10| 73 69 67 6e 65 64 20 6c | 6f 6e 67 29 73 74 72 5f |signed l|ong)str_|
|00002a20| 67 6e 75 6d 28 73 32 29 | 3b 0d 09 69 66 20 28 74 |gnum(s2)|;..if (t|
|00002a30| 6d 70 6c 6f 6e 67 20 3d | 3d 20 30 4c 29 20 7b 0d |mplong =|= 0L) {.|
|00002a40| 09 20 20 20 20 79 79 65 | 72 72 6f 72 28 22 49 6c |. yye|rror("Il|
|00002a50| 6c 65 67 61 6c 20 6d 6f | 64 75 6c 75 73 20 6f 66 |legal mo|dulus of|
|00002a60| 20 63 6f 6e 73 74 61 6e | 74 20 7a 65 72 6f 22 29 | constan|t zero")|
|00002a70| 3b 0d 09 20 20 20 20 72 | 65 74 75 72 6e 20 61 72 |;.. r|eturn ar|
|00002a80| 67 3b 0d 09 7d 0d 09 76 | 61 6c 75 65 20 3d 20 73 |g;..}..v|alue = s|
|00002a90| 74 72 5f 67 6e 75 6d 28 | 73 31 29 3b 0d 23 69 66 |tr_gnum(|s1);.#if|
|00002aa0| 6e 64 65 66 20 6c 69 6e | 74 0d 09 69 66 20 28 76 |ndef lin|t..if (v|
|00002ab0| 61 6c 75 65 20 3e 3d 20 | 30 2e 30 29 0d 09 20 20 |alue >= |0.0).. |
|00002ac0| 20 20 73 74 72 5f 6e 75 | 6d 73 65 74 28 73 74 72 | str_nu|mset(str|
|00002ad0| 2c 28 64 6f 75 62 6c 65 | 29 28 28 28 75 6e 73 69 |,(double|)(((unsi|
|00002ae0| 67 6e 65 64 20 6c 6f 6e | 67 29 76 61 6c 75 65 29 |gned lon|g)value)|
|00002af0| 20 25 20 74 6d 70 6c 6f | 6e 67 29 29 3b 0d 09 65 | % tmplo|ng));..e|
|00002b00| 6c 73 65 20 7b 0d 09 20 | 20 20 20 74 6d 70 32 20 |lse {.. | tmp2 |
|00002b10| 3d 20 28 6c 6f 6e 67 29 | 76 61 6c 75 65 3b 0d 09 |= (long)|value;..|
|00002b20| 20 20 20 20 73 74 72 5f | 6e 75 6d 73 65 74 28 73 | str_|numset(s|
|00002b30| 74 72 2c 28 64 6f 75 62 | 6c 65 29 28 28 74 6d 70 |tr,(doub|le)((tmp|
|00002b40| 6c 6f 6e 67 2d 28 28 2d | 74 6d 70 32 20 2d 20 31 |long-((-|tmp2 - 1|
|00002b50| 29 20 25 20 74 6d 70 6c | 6f 6e 67 29 29 20 2d 20 |) % tmpl|ong)) - |
|00002b60| 31 29 29 3b 0d 09 7d 0d | 23 65 6c 73 65 0d 09 74 |1));..}.|#else..t|
|00002b70| 6d 70 32 20 3d 20 74 6d | 70 32 3b 0d 23 65 6e 64 |mp2 = tm|p2;.#end|
|00002b80| 69 66 0d 09 62 72 65 61 | 6b 3b 0d 20 20 20 20 63 |if..brea|k;. c|
|00002b90| 61 73 65 20 4f 5f 41 44 | 44 3a 0d 09 43 48 45 43 |ase O_AD|D:..CHEC|
|00002ba0| 4b 31 32 3b 0d 09 76 61 | 6c 75 65 20 3d 20 73 74 |K12;..va|lue = st|
|00002bb0| 72 5f 67 6e 75 6d 28 73 | 31 29 3b 0d 09 73 74 72 |r_gnum(s|1);..str|
|00002bc0| 5f 6e 75 6d 73 65 74 28 | 73 74 72 2c 76 61 6c 75 |_numset(|str,valu|
|00002bd0| 65 20 2b 20 73 74 72 5f | 67 6e 75 6d 28 73 32 29 |e + str_|gnum(s2)|
|00002be0| 29 3b 0d 09 62 72 65 61 | 6b 3b 0d 20 20 20 20 63 |);..brea|k;. c|
|00002bf0| 61 73 65 20 4f 5f 53 55 | 42 54 52 41 43 54 3a 0d |ase O_SU|BTRACT:.|
|00002c00| 09 43 48 45 43 4b 31 32 | 3b 0d 09 76 61 6c 75 65 |.CHECK12|;..value|
|00002c10| 20 3d 20 73 74 72 5f 67 | 6e 75 6d 28 73 31 29 3b | = str_g|num(s1);|
|00002c20| 0d 09 73 74 72 5f 6e 75 | 6d 73 65 74 28 73 74 72 |..str_nu|mset(str|
|00002c30| 2c 76 61 6c 75 65 20 2d | 20 73 74 72 5f 67 6e 75 |,value -| str_gnu|
|00002c40| 6d 28 73 32 29 29 3b 0d | 09 62 72 65 61 6b 3b 0d |m(s2));.|.break;.|
|00002c50| 20 20 20 20 63 61 73 65 | 20 4f 5f 4c 45 46 54 5f | case| O_LEFT_|
|00002c60| 53 48 49 46 54 3a 0d 09 | 43 48 45 43 4b 31 32 3b |SHIFT:..|CHECK12;|
|00002c70| 0d 09 76 61 6c 75 65 20 | 3d 20 73 74 72 5f 67 6e |..value |= str_gn|
|00002c80| 75 6d 28 73 31 29 3b 0d | 09 69 20 3d 20 28 69 6e |um(s1);.|.i = (in|
|00002c90| 74 29 73 74 72 5f 67 6e | 75 6d 28 73 32 29 3b 0d |t)str_gn|um(s2);.|
|00002ca0| 23 69 66 6e 64 65 66 20 | 6c 69 6e 74 0d 09 73 74 |#ifndef |lint..st|
|00002cb0| 72 5f 6e 75 6d 73 65 74 | 28 73 74 72 2c 28 64 6f |r_numset|(str,(do|
|00002cc0| 75 62 6c 65 29 28 28 28 | 6c 6f 6e 67 29 76 61 6c |uble)(((|long)val|
|00002cd0| 75 65 29 20 3c 3c 20 69 | 29 29 3b 0d 23 65 6e 64 |ue) << i|));.#end|
|00002ce0| 69 66 0d 09 62 72 65 61 | 6b 3b 0d 20 20 20 20 63 |if..brea|k;. c|
|00002cf0| 61 73 65 20 4f 5f 52 49 | 47 48 54 5f 53 48 49 46 |ase O_RI|GHT_SHIF|
|00002d00| 54 3a 0d 09 43 48 45 43 | 4b 31 32 3b 0d 09 76 61 |T:..CHEC|K12;..va|
|00002d10| 6c 75 65 20 3d 20 73 74 | 72 5f 67 6e 75 6d 28 73 |lue = st|r_gnum(s|
|00002d20| 31 29 3b 0d 09 69 20 3d | 20 28 69 6e 74 29 73 74 |1);..i =| (int)st|
|00002d30| 72 5f 67 6e 75 6d 28 73 | 32 29 3b 0d 23 69 66 6e |r_gnum(s|2);.#ifn|
|00002d40| 64 65 66 20 6c 69 6e 74 | 0d 09 73 74 72 5f 6e 75 |def lint|..str_nu|
|00002d50| 6d 73 65 74 28 73 74 72 | 2c 28 64 6f 75 62 6c 65 |mset(str|,(double|
|00002d60| 29 28 28 28 6c 6f 6e 67 | 29 76 61 6c 75 65 29 20 |)(((long|)value) |
|00002d70| 3e 3e 20 69 29 29 3b 0d | 23 65 6e 64 69 66 0d 09 |>> i));.|#endif..|
|00002d80| 62 72 65 61 6b 3b 0d 20 | 20 20 20 63 61 73 65 20 |break;. | case |
|00002d90| 4f 5f 4c 54 3a 0d 09 43 | 48 45 43 4b 31 32 3b 0d |O_LT:..C|HECK12;.|
|00002da0| 09 76 61 6c 75 65 20 3d | 20 73 74 72 5f 67 6e 75 |.value =| str_gnu|
|00002db0| 6d 28 73 31 29 3b 0d 09 | 73 74 72 5f 6e 75 6d 73 |m(s1);..|str_nums|
|00002dc0| 65 74 28 73 74 72 2c 28 | 76 61 6c 75 65 20 3c 20 |et(str,(|value < |
|00002dd0| 73 74 72 5f 67 6e 75 6d | 28 73 32 29 29 20 3f 20 |str_gnum|(s2)) ? |
|00002de0| 31 2e 30 20 3a 20 30 2e | 30 29 3b 0d 09 62 72 65 |1.0 : 0.|0);..bre|
|00002df0| 61 6b 3b 0d 20 20 20 20 | 63 61 73 65 20 4f 5f 47 |ak;. |case O_G|
|00002e00| 54 3a 0d 09 43 48 45 43 | 4b 31 32 3b 0d 09 76 61 |T:..CHEC|K12;..va|
|00002e10| 6c 75 65 20 3d 20 73 74 | 72 5f 67 6e 75 6d 28 73 |lue = st|r_gnum(s|
|00002e20| 31 29 3b 0d 09 73 74 72 | 5f 6e 75 6d 73 65 74 28 |1);..str|_numset(|
|00002e30| 73 74 72 2c 28 76 61 6c | 75 65 20 3e 20 73 74 72 |str,(val|ue > str|
|00002e40| 5f 67 6e 75 6d 28 73 32 | 29 29 20 3f 20 31 2e 30 |_gnum(s2|)) ? 1.0|
|00002e50| 20 3a 20 30 2e 30 29 3b | 0d 09 62 72 65 61 6b 3b | : 0.0);|..break;|
|00002e60| 0d 20 20 20 20 63 61 73 | 65 20 4f 5f 4c 45 3a 0d |. cas|e O_LE:.|
|00002e70| 09 43 48 45 43 4b 31 32 | 3b 0d 09 76 61 6c 75 65 |.CHECK12|;..value|
|00002e80| 20 3d 20 73 74 72 5f 67 | 6e 75 6d 28 73 31 29 3b | = str_g|num(s1);|
|00002e90| 0d 09 73 74 72 5f 6e 75 | 6d 73 65 74 28 73 74 72 |..str_nu|mset(str|
|00002ea0| 2c 28 76 61 6c 75 65 20 | 3c 3d 20 73 74 72 5f 67 |,(value |<= str_g|
|00002eb0| 6e 75 6d 28 73 32 29 29 | 20 3f 20 31 2e 30 20 3a |num(s2))| ? 1.0 :|
|00002ec0| 20 30 2e 30 29 3b 0d 09 | 62 72 65 61 6b 3b 0d 20 | 0.0);..|break;. |
|00002ed0| 20 20 20 63 61 73 65 20 | 4f 5f 47 45 3a 0d 09 43 | case |O_GE:..C|
|00002ee0| 48 45 43 4b 31 32 3b 0d | 09 76 61 6c 75 65 20 3d |HECK12;.|.value =|
|00002ef0| 20 73 74 72 5f 67 6e 75 | 6d 28 73 31 29 3b 0d 09 | str_gnu|m(s1);..|
|00002f00| 73 74 72 5f 6e 75 6d 73 | 65 74 28 73 74 72 2c 28 |str_nums|et(str,(|
|00002f10| 76 61 6c 75 65 20 3e 3d | 20 73 74 72 5f 67 6e 75 |value >=| str_gnu|
|00002f20| 6d 28 73 32 29 29 20 3f | 20 31 2e 30 20 3a 20 30 |m(s2)) ?| 1.0 : 0|
|00002f30| 2e 30 29 3b 0d 09 62 72 | 65 61 6b 3b 0d 20 20 20 |.0);..br|eak;. |
|00002f40| 20 63 61 73 65 20 4f 5f | 45 51 3a 0d 09 43 48 45 | case O_|EQ:..CHE|
|00002f50| 43 4b 31 32 3b 0d 09 69 | 66 20 28 64 6f 77 61 72 |CK12;..i|f (dowar|
|00002f60| 6e 29 20 7b 0d 09 20 20 | 20 20 69 66 20 28 28 21 |n) {.. | if ((!|
|00002f70| 73 31 2d 3e 73 74 72 5f | 6e 6f 6b 20 26 26 20 21 |s1->str_|nok && !|
|00002f80| 6c 6f 6f 6b 73 5f 6c 69 | 6b 65 5f 6e 75 6d 62 65 |looks_li|ke_numbe|
|00002f90| 72 28 73 31 29 29 20 7c | 7c 0d 09 09 28 21 73 32 |r(s1)) |||...(!s2|
|00002fa0| 2d 3e 73 74 72 5f 6e 6f | 6b 20 26 26 20 21 6c 6f |->str_no|k && !lo|
|00002fb0| 6f 6b 73 5f 6c 69 6b 65 | 5f 6e 75 6d 62 65 72 28 |oks_like|_number(|
|00002fc0| 73 32 29 29 20 29 0d 09 | 09 77 61 72 6e 28 22 50 |s2)) )..|.warn("P|
|00002fd0| 6f 73 73 69 62 6c 65 20 | 75 73 65 20 6f 66 20 3d |ossible |use of =|
|00002fe0| 3d 20 6f 6e 20 73 74 72 | 69 6e 67 20 76 61 6c 75 |= on str|ing valu|
|00002ff0| 65 22 29 3b 0d 09 7d 0d | 09 76 61 6c 75 65 20 3d |e");..}.|.value =|
|00003000| 20 73 74 72 5f 67 6e 75 | 6d 28 73 31 29 3b 0d 09 | str_gnu|m(s1);..|
|00003010| 73 74 72 5f 6e 75 6d 73 | 65 74 28 73 74 72 2c 28 |str_nums|et(str,(|
|00003020| 76 61 6c 75 65 20 3d 3d | 20 73 74 72 5f 67 6e 75 |value ==| str_gnu|
|00003030| 6d 28 73 32 29 29 20 3f | 20 31 2e 30 20 3a 20 30 |m(s2)) ?| 1.0 : 0|
|00003040| 2e 30 29 3b 0d 09 62 72 | 65 61 6b 3b 0d 20 20 20 |.0);..br|eak;. |
|00003050| 20 63 61 73 65 20 4f 5f | 4e 45 3a 0d 09 43 48 45 | case O_|NE:..CHE|
|00003060| 43 4b 31 32 3b 0d 09 76 | 61 6c 75 65 20 3d 20 73 |CK12;..v|alue = s|
|00003070| 74 72 5f 67 6e 75 6d 28 | 73 31 29 3b 0d 09 73 74 |tr_gnum(|s1);..st|
|00003080| 72 5f 6e 75 6d 73 65 74 | 28 73 74 72 2c 28 76 61 |r_numset|(str,(va|
|00003090| 6c 75 65 20 21 3d 20 73 | 74 72 5f 67 6e 75 6d 28 |lue != s|tr_gnum(|
|000030a0| 73 32 29 29 20 3f 20 31 | 2e 30 20 3a 20 30 2e 30 |s2)) ? 1|.0 : 0.0|
|000030b0| 29 3b 0d 09 62 72 65 61 | 6b 3b 0d 20 20 20 20 63 |);..brea|k;. c|
|000030c0| 61 73 65 20 4f 5f 4e 43 | 4d 50 3a 0d 09 43 48 45 |ase O_NC|MP:..CHE|
|000030d0| 43 4b 31 32 3b 0d 09 76 | 61 6c 75 65 20 3d 20 73 |CK12;..v|alue = s|
|000030e0| 74 72 5f 67 6e 75 6d 28 | 73 31 29 3b 0d 09 76 61 |tr_gnum(|s1);..va|
|000030f0| 6c 75 65 20 2d 3d 20 73 | 74 72 5f 67 6e 75 6d 28 |lue -= s|tr_gnum(|
|00003100| 73 32 29 3b 0d 09 69 66 | 20 28 76 61 6c 75 65 20 |s2);..if| (value |
|00003110| 3e 20 30 2e 30 29 0d 09 | 20 20 20 20 76 61 6c 75 |> 0.0)..| valu|
|00003120| 65 20 3d 20 31 2e 30 3b | 0d 09 65 6c 73 65 20 69 |e = 1.0;|..else i|
|00003130| 66 20 28 76 61 6c 75 65 | 20 3c 20 30 2e 30 29 0d |f (value| < 0.0).|
|00003140| 09 20 20 20 20 76 61 6c | 75 65 20 3d 20 2d 31 2e |. val|ue = -1.|
|00003150| 30 3b 0d 09 73 74 72 5f | 6e 75 6d 73 65 74 28 73 |0;..str_|numset(s|
|00003160| 74 72 2c 76 61 6c 75 65 | 29 3b 0d 09 62 72 65 61 |tr,value|);..brea|
|00003170| 6b 3b 0d 20 20 20 20 63 | 61 73 65 20 4f 5f 42 49 |k;. c|ase O_BI|
|00003180| 54 5f 41 4e 44 3a 0d 09 | 43 48 45 43 4b 31 32 3b |T_AND:..|CHECK12;|
|00003190| 0d 09 76 61 6c 75 65 20 | 3d 20 73 74 72 5f 67 6e |..value |= str_gn|
|000031a0| 75 6d 28 73 31 29 3b 0d | 23 69 66 6e 64 65 66 20 |um(s1);.|#ifndef |
|000031b0| 6c 69 6e 74 0d 09 73 74 | 72 5f 6e 75 6d 73 65 74 |lint..st|r_numset|
|000031c0| 28 73 74 72 2c 28 64 6f | 75 62 6c 65 29 28 55 5f |(str,(do|uble)(U_|
|000031d0| 4c 28 76 61 6c 75 65 29 | 20 26 20 55 5f 4c 28 73 |L(value)| & U_L(s|
|000031e0| 74 72 5f 67 6e 75 6d 28 | 73 32 29 29 29 29 3b 0d |tr_gnum(|s2))));.|
|000031f0| 23 65 6e 64 69 66 0d 09 | 62 72 65 61 6b 3b 0d 20 |#endif..|break;. |
|00003200| 20 20 20 63 61 73 65 20 | 4f 5f 58 4f 52 3a 0d 09 | case |O_XOR:..|
|00003210| 43 48 45 43 4b 31 32 3b | 0d 09 76 61 6c 75 65 20 |CHECK12;|..value |
|00003220| 3d 20 73 74 72 5f 67 6e | 75 6d 28 73 31 29 3b 0d |= str_gn|um(s1);.|
|00003230| 23 69 66 6e 64 65 66 20 | 6c 69 6e 74 0d 09 73 74 |#ifndef |lint..st|
|00003240| 72 5f 6e 75 6d 73 65 74 | 28 73 74 72 2c 28 64 6f |r_numset|(str,(do|
|00003250| 75 62 6c 65 29 28 55 5f | 4c 28 76 61 6c 75 65 29 |uble)(U_|L(value)|
|00003260| 20 5e 20 55 5f 4c 28 73 | 74 72 5f 67 6e 75 6d 28 | ^ U_L(s|tr_gnum(|
|00003270| 73 32 29 29 29 29 3b 0d | 23 65 6e 64 69 66 0d 09 |s2))));.|#endif..|
|00003280| 62 72 65 61 6b 3b 0d 20 | 20 20 20 63 61 73 65 20 |break;. | case |
|00003290| 4f 5f 42 49 54 5f 4f 52 | 3a 0d 09 43 48 45 43 4b |O_BIT_OR|:..CHECK|
|000032a0| 31 32 3b 0d 09 76 61 6c | 75 65 20 3d 20 73 74 72 |12;..val|ue = str|
|000032b0| 5f 67 6e 75 6d 28 73 31 | 29 3b 0d 23 69 66 6e 64 |_gnum(s1|);.#ifnd|
|000032c0| 65 66 20 6c 69 6e 74 0d | 09 73 74 72 5f 6e 75 6d |ef lint.|.str_num|
|000032d0| 73 65 74 28 73 74 72 2c | 28 64 6f 75 62 6c 65 29 |set(str,|(double)|
|000032e0| 28 55 5f 4c 28 76 61 6c | 75 65 29 20 7c 20 55 5f |(U_L(val|ue) | U_|
|000032f0| 4c 28 73 74 72 5f 67 6e | 75 6d 28 73 32 29 29 29 |L(str_gn|um(s2)))|
|00003300| 29 3b 0d 23 65 6e 64 69 | 66 0d 09 62 72 65 61 6b |);.#endi|f..break|
|00003310| 3b 0d 20 20 20 20 63 61 | 73 65 20 4f 5f 41 4e 44 |;. ca|se O_AND|
|00003320| 3a 0d 09 43 48 45 43 4b | 31 32 3b 0d 09 69 66 20 |:..CHECK|12;..if |
|00003330| 28 73 74 72 5f 74 72 75 | 65 28 73 31 29 29 0d 09 |(str_tru|e(s1))..|
|00003340| 20 20 20 20 73 74 72 5f | 73 73 65 74 28 73 74 72 | str_|sset(str|
|00003350| 2c 73 32 29 3b 0d 09 65 | 6c 73 65 0d 09 20 20 20 |,s2);..e|lse.. |
|00003360| 20 73 74 72 5f 73 73 65 | 74 28 73 74 72 2c 73 31 | str_sse|t(str,s1|
|00003370| 29 3b 0d 09 62 72 65 61 | 6b 3b 0d 20 20 20 20 63 |);..brea|k;. c|
|00003380| 61 73 65 20 4f 5f 4f 52 | 3a 0d 09 43 48 45 43 4b |ase O_OR|:..CHECK|
|00003390| 31 32 3b 0d 09 69 66 20 | 28 73 74 72 5f 74 72 75 |12;..if |(str_tru|
|000033a0| 65 28 73 31 29 29 0d 09 | 20 20 20 20 73 74 72 5f |e(s1))..| str_|
|000033b0| 73 73 65 74 28 73 74 72 | 2c 73 31 29 3b 0d 09 65 |sset(str|,s1);..e|
|000033c0| 6c 73 65 0d 09 20 20 20 | 20 73 74 72 5f 73 73 65 |lse.. | str_sse|
|000033d0| 74 28 73 74 72 2c 73 32 | 29 3b 0d 09 62 72 65 61 |t(str,s2|);..brea|
|000033e0| 6b 3b 0d 20 20 20 20 63 | 61 73 65 20 4f 5f 43 4f |k;. c|ase O_CO|
|000033f0| 4e 44 5f 45 58 50 52 3a | 0d 09 43 48 45 43 4b 31 |ND_EXPR:|..CHECK1|
|00003400| 32 3b 0d 09 69 66 20 28 | 28 61 72 67 5b 33 5d 2e |2;..if (|(arg[3].|
|00003410| 61 72 67 5f 74 79 70 65 | 20 26 20 41 5f 4d 41 53 |arg_type| & A_MAS|
|00003420| 4b 29 20 21 3d 20 41 5f | 53 49 4e 47 4c 45 29 0d |K) != A_|SINGLE).|
|00003430| 09 20 20 20 20 72 65 74 | 75 72 6e 20 61 72 67 3b |. ret|urn arg;|
|00003440| 0d 09 69 66 20 28 73 74 | 72 5f 74 72 75 65 28 73 |..if (st|r_true(s|
|00003450| 31 29 29 0d 09 20 20 20 | 20 73 74 72 5f 73 73 65 |1)).. | str_sse|
|00003460| 74 28 73 74 72 2c 73 32 | 29 3b 0d 09 65 6c 73 65 |t(str,s2|);..else|
|00003470| 0d 09 20 20 20 20 73 74 | 72 5f 73 73 65 74 28 73 |.. st|r_sset(s|
|00003480| 74 72 2c 61 72 67 5b 33 | 5d 2e 61 72 67 5f 70 74 |tr,arg[3|].arg_pt|
|00003490| 72 2e 61 72 67 5f 73 74 | 72 29 3b 0d 09 73 74 72 |r.arg_st|r);..str|
|000034a0| 5f 66 72 65 65 28 61 72 | 67 5b 33 5d 2e 61 72 67 |_free(ar|g[3].arg|
|000034b0| 5f 70 74 72 2e 61 72 67 | 5f 73 74 72 29 3b 0d 09 |_ptr.arg|_str);..|
|000034c0| 52 65 6e 65 77 28 61 72 | 67 2c 20 33 2c 20 41 52 |Renew(ar|g, 3, AR|
|000034d0| 47 29 3b 0d 09 62 72 65 | 61 6b 3b 0d 20 20 20 20 |G);..bre|ak;. |
|000034e0| 63 61 73 65 20 4f 5f 4e | 45 47 41 54 45 3a 0d 09 |case O_N|EGATE:..|
|000034f0| 43 48 45 43 4b 31 3b 0d | 09 73 74 72 5f 6e 75 6d |CHECK1;.|.str_num|
|00003500| 73 65 74 28 73 74 72 2c | 28 64 6f 75 62 6c 65 29 |set(str,|(double)|
|00003510| 28 2d 73 74 72 5f 67 6e | 75 6d 28 73 31 29 29 29 |(-str_gn|um(s1)))|
|00003520| 3b 0d 09 62 72 65 61 6b | 3b 0d 20 20 20 20 63 61 |;..break|;. ca|
|00003530| 73 65 20 4f 5f 4e 4f 54 | 3a 0d 09 43 48 45 43 4b |se O_NOT|:..CHECK|
|00003540| 31 3b 0d 23 69 66 64 65 | 66 20 4e 4f 54 4e 4f 54 |1;.#ifde|f NOTNOT|
|00003550| 0d 09 7b 20 63 68 61 72 | 20 78 78 78 20 3d 20 73 |..{ char| xxx = s|
|00003560| 74 72 5f 74 72 75 65 28 | 73 31 29 3b 20 73 74 72 |tr_true(|s1); str|
|00003570| 5f 6e 75 6d 73 65 74 28 | 73 74 72 2c 28 64 6f 75 |_numset(|str,(dou|
|00003580| 62 6c 65 29 21 78 78 78 | 29 3b 20 7d 0d 23 65 6c |ble)!xxx|); }.#el|
|00003590| 73 65 0d 09 73 74 72 5f | 6e 75 6d 73 65 74 28 73 |se..str_|numset(s|
|000035a0| 74 72 2c 28 64 6f 75 62 | 6c 65 29 28 21 73 74 72 |tr,(doub|le)(!str|
|000035b0| 5f 74 72 75 65 28 73 31 | 29 29 29 3b 0d 23 65 6e |_true(s1|)));.#en|
|000035c0| 64 69 66 0d 09 62 72 65 | 61 6b 3b 0d 20 20 20 20 |dif..bre|ak;. |
|000035d0| 63 61 73 65 20 4f 5f 43 | 4f 4d 50 4c 45 4d 45 4e |case O_C|OMPLEMEN|
|000035e0| 54 3a 0d 09 43 48 45 43 | 4b 31 3b 0d 23 69 66 6e |T:..CHEC|K1;.#ifn|
|000035f0| 64 65 66 20 6c 69 6e 74 | 0d 09 73 74 72 5f 6e 75 |def lint|..str_nu|
|00003600| 6d 73 65 74 28 73 74 72 | 2c 28 64 6f 75 62 6c 65 |mset(str|,(double|
|00003610| 29 28 7e 55 5f 4c 28 73 | 74 72 5f 67 6e 75 6d 28 |)(~U_L(s|tr_gnum(|
|00003620| 73 31 29 29 29 29 3b 0d | 23 65 6e 64 69 66 0d 09 |s1))));.|#endif..|
|00003630| 62 72 65 61 6b 3b 0d 20 | 20 20 20 63 61 73 65 20 |break;. | case |
|00003640| 4f 5f 53 49 4e 3a 0d 09 | 43 48 45 43 4b 31 3b 0d |O_SIN:..|CHECK1;.|
|00003650| 09 73 74 72 5f 6e 75 6d | 73 65 74 28 73 74 72 2c |.str_num|set(str,|
|00003660| 73 69 6e 28 73 74 72 5f | 67 6e 75 6d 28 73 31 29 |sin(str_|gnum(s1)|
|00003670| 29 29 3b 0d 09 62 72 65 | 61 6b 3b 0d 20 20 20 20 |));..bre|ak;. |
|00003680| 63 61 73 65 20 4f 5f 43 | 4f 53 3a 0d 09 43 48 45 |case O_C|OS:..CHE|
|00003690| 43 4b 31 3b 0d 09 73 74 | 72 5f 6e 75 6d 73 65 74 |CK1;..st|r_numset|
|000036a0| 28 73 74 72 2c 63 6f 73 | 28 73 74 72 5f 67 6e 75 |(str,cos|(str_gnu|
|000036b0| 6d 28 73 31 29 29 29 3b | 0d 09 62 72 65 61 6b 3b |m(s1)));|..break;|
|000036c0| 0d 20 20 20 20 63 61 73 | 65 20 4f 5f 41 54 41 4e |. cas|e O_ATAN|
|000036d0| 32 3a 0d 09 43 48 45 43 | 4b 31 32 3b 0d 09 76 61 |2:..CHEC|K12;..va|
|000036e0| 6c 75 65 20 3d 20 73 74 | 72 5f 67 6e 75 6d 28 73 |lue = st|r_gnum(s|
|000036f0| 31 29 3b 0d 09 73 74 72 | 5f 6e 75 6d 73 65 74 28 |1);..str|_numset(|
|00003700| 73 74 72 2c 61 74 61 6e | 32 28 76 61 6c 75 65 2c |str,atan|2(value,|
|00003710| 20 73 74 72 5f 67 6e 75 | 6d 28 73 32 29 29 29 3b | str_gnu|m(s2)));|
|00003720| 0d 09 62 72 65 61 6b 3b | 0d 20 20 20 20 63 61 73 |..break;|. cas|
|00003730| 65 20 4f 5f 50 4f 57 3a | 0d 09 43 48 45 43 4b 31 |e O_POW:|..CHECK1|
|00003740| 32 3b 0d 09 76 61 6c 75 | 65 20 3d 20 73 74 72 5f |2;..valu|e = str_|
|00003750| 67 6e 75 6d 28 73 31 29 | 3b 0d 09 73 74 72 5f 6e |gnum(s1)|;..str_n|
|00003760| 75 6d 73 65 74 28 73 74 | 72 2c 70 6f 77 28 76 61 |umset(st|r,pow(va|
|00003770| 6c 75 65 2c 20 73 74 72 | 5f 67 6e 75 6d 28 73 32 |lue, str|_gnum(s2|
|00003780| 29 29 29 3b 0d 09 62 72 | 65 61 6b 3b 0d 20 20 20 |)));..br|eak;. |
|00003790| 20 63 61 73 65 20 4f 5f | 4c 45 4e 47 54 48 3a 0d | case O_|LENGTH:.|
|000037a0| 09 69 66 20 28 61 72 67 | 5b 31 5d 2e 61 72 67 5f |.if (arg|[1].arg_|
|000037b0| 74 79 70 65 20 3d 3d 20 | 41 5f 53 54 41 42 29 20 |type == |A_STAB) |
|000037c0| 7b 0d 09 20 20 20 20 61 | 72 67 2d 3e 61 72 67 5f |{.. a|rg->arg_|
|000037d0| 74 79 70 65 20 3d 20 4f | 5f 49 54 45 4d 3b 0d 09 |type = O|_ITEM;..|
|000037e0| 20 20 20 20 61 72 67 5b | 31 5d 2e 61 72 67 5f 74 | arg[|1].arg_t|
|000037f0| 79 70 65 20 3d 20 41 5f | 4c 45 4e 53 54 41 42 3b |ype = A_|LENSTAB;|
|00003800| 0d 09 20 20 20 20 72 65 | 74 75 72 6e 20 61 72 67 |.. re|turn arg|
|00003810| 3b 0d 09 7d 0d 09 43 48 | 45 43 4b 31 3b 0d 09 73 |;..}..CH|ECK1;..s|
|00003820| 74 72 5f 6e 75 6d 73 65 | 74 28 73 74 72 2c 20 28 |tr_numse|t(str, (|
|00003830| 64 6f 75 62 6c 65 29 73 | 74 72 5f 6c 65 6e 28 73 |double)s|tr_len(s|
|00003840| 31 29 29 3b 0d 09 62 72 | 65 61 6b 3b 0d 20 20 20 |1));..br|eak;. |
|00003850| 20 63 61 73 65 20 4f 5f | 53 4c 54 3a 0d 09 43 48 | case O_|SLT:..CH|
|00003860| 45 43 4b 31 32 3b 0d 09 | 73 74 72 5f 6e 75 6d 73 |ECK12;..|str_nums|
|00003870| 65 74 28 73 74 72 2c 28 | 64 6f 75 62 6c 65 29 28 |et(str,(|double)(|
|00003880| 73 74 72 5f 63 6d 70 28 | 73 31 2c 73 32 29 20 3c |str_cmp(|s1,s2) <|
|00003890| 20 30 29 29 3b 0d 09 62 | 72 65 61 6b 3b 0d 20 20 | 0));..b|reak;. |
|000038a0| 20 20 63 61 73 65 20 4f | 5f 53 47 54 3a 0d 09 43 | case O|_SGT:..C|
|000038b0| 48 45 43 4b 31 32 3b 0d | 09 73 74 72 5f 6e 75 6d |HECK12;.|.str_num|
|000038c0| 73 65 74 28 73 74 72 2c | 28 64 6f 75 62 6c 65 29 |set(str,|(double)|
|000038d0| 28 73 74 72 5f 63 6d 70 | 28 73 31 2c 73 32 29 20 |(str_cmp|(s1,s2) |
|000038e0| 3e 20 30 29 29 3b 0d 09 | 62 72 65 61 6b 3b 0d 20 |> 0));..|break;. |
|000038f0| 20 20 20 63 61 73 65 20 | 4f 5f 53 4c 45 3a 0d 09 | case |O_SLE:..|
|00003900| 43 48 45 43 4b 31 32 3b | 0d 09 73 74 72 5f 6e 75 |CHECK12;|..str_nu|
|00003910| 6d 73 65 74 28 73 74 72 | 2c 28 64 6f 75 62 6c 65 |mset(str|,(double|
|00003920| 29 28 73 74 72 5f 63 6d | 70 28 73 31 2c 73 32 29 |)(str_cm|p(s1,s2)|
|00003930| 20 3c 3d 20 30 29 29 3b | 0d 09 62 72 65 61 6b 3b | <= 0));|..break;|
|00003940| 0d 20 20 20 20 63 61 73 | 65 20 4f 5f 53 47 45 3a |. cas|e O_SGE:|
|00003950| 0d 09 43 48 45 43 4b 31 | 32 3b 0d 09 73 74 72 5f |..CHECK1|2;..str_|
|00003960| 6e 75 6d 73 65 74 28 73 | 74 72 2c 28 64 6f 75 62 |numset(s|tr,(doub|
|00003970| 6c 65 29 28 73 74 72 5f | 63 6d 70 28 73 31 2c 73 |le)(str_|cmp(s1,s|
|00003980| 32 29 20 3e 3d 20 30 29 | 29 3b 0d 09 62 72 65 61 |2) >= 0)|);..brea|
|00003990| 6b 3b 0d 20 20 20 20 63 | 61 73 65 20 4f 5f 53 45 |k;. c|ase O_SE|
|000039a0| 51 3a 0d 09 43 48 45 43 | 4b 31 32 3b 0d 09 73 74 |Q:..CHEC|K12;..st|
|000039b0| 72 5f 6e 75 6d 73 65 74 | 28 73 74 72 2c 28 64 6f |r_numset|(str,(do|
|000039c0| 75 62 6c 65 29 28 73 74 | 72 5f 65 71 28 73 31 2c |uble)(st|r_eq(s1,|
|000039d0| 73 32 29 29 29 3b 0d 09 | 62 72 65 61 6b 3b 0d 20 |s2)));..|break;. |
|000039e0| 20 20 20 63 61 73 65 20 | 4f 5f 53 4e 45 3a 0d 09 | case |O_SNE:..|
|000039f0| 43 48 45 43 4b 31 32 3b | 0d 09 73 74 72 5f 6e 75 |CHECK12;|..str_nu|
|00003a00| 6d 73 65 74 28 73 74 72 | 2c 28 64 6f 75 62 6c 65 |mset(str|,(double|
|00003a10| 29 28 21 73 74 72 5f 65 | 71 28 73 31 2c 73 32 29 |)(!str_e|q(s1,s2)|
|00003a20| 29 29 3b 0d 09 62 72 65 | 61 6b 3b 0d 20 20 20 20 |));..bre|ak;. |
|00003a30| 63 61 73 65 20 4f 5f 53 | 43 4d 50 3a 0d 09 43 48 |case O_S|CMP:..CH|
|00003a40| 45 43 4b 31 32 3b 0d 09 | 73 74 72 5f 6e 75 6d 73 |ECK12;..|str_nums|
|00003a50| 65 74 28 73 74 72 2c 28 | 64 6f 75 62 6c 65 29 28 |et(str,(|double)(|
|00003a60| 73 74 72 5f 63 6d 70 28 | 73 31 2c 73 32 29 29 29 |str_cmp(|s1,s2)))|
|00003a70| 3b 0d 09 62 72 65 61 6b | 3b 0d 20 20 20 20 63 61 |;..break|;. ca|
|00003a80| 73 65 20 4f 5f 43 52 59 | 50 54 3a 0d 09 43 48 45 |se O_CRY|PT:..CHE|
|00003a90| 43 4b 31 32 3b 0d 23 69 | 66 64 65 66 20 48 41 53 |CK12;.#i|fdef HAS|
|00003aa0| 5f 43 52 59 50 54 0d 09 | 20 20 20 20 74 6d 70 73 |_CRYPT..| tmps|
|00003ab0| 20 3d 20 73 74 72 5f 67 | 65 74 28 73 31 29 3b 0d | = str_g|et(s1);.|
|00003ac0| 09 20 20 20 20 73 74 72 | 5f 73 65 74 28 73 74 72 |. str|_set(str|
|00003ad0| 2c 63 72 79 70 74 28 74 | 6d 70 73 2c 73 74 72 5f |,crypt(t|mps,str_|
|00003ae0| 67 65 74 28 73 32 29 29 | 29 3b 0d 23 65 6c 73 65 |get(s2))|);.#else|
|00003af0| 0d 09 20 20 20 20 79 79 | 65 72 72 6f 72 28 0d 09 |.. yy|error(..|
|00003b00| 20 20 20 20 22 54 68 65 | 20 63 72 79 70 74 28 29 | "The| crypt()|
|00003b10| 20 66 75 6e 63 74 69 6f | 6e 20 69 73 20 75 6e 69 | functio|n is uni|
|00003b20| 6d 70 6c 65 6d 65 6e 74 | 65 64 20 64 75 65 20 74 |mplement|ed due t|
|00003b30| 6f 20 65 78 63 65 73 73 | 69 76 65 20 70 61 72 61 |o excess|ive para|
|00003b40| 6e 6f 69 61 2e 22 29 3b | 0d 23 65 6e 64 69 66 0d |noia.");|.#endif.|
|00003b50| 09 20 20 20 20 62 72 65 | 61 6b 3b 0d 09 63 61 73 |. bre|ak;..cas|
|00003b60| 65 20 4f 5f 45 58 50 3a | 0d 09 43 48 45 43 4b 31 |e O_EXP:|..CHECK1|
|00003b70| 3b 0d 09 20 20 20 20 73 | 74 72 5f 6e 75 6d 73 65 |;.. s|tr_numse|
|00003b80| 74 28 73 74 72 2c 65 78 | 70 28 73 74 72 5f 67 6e |t(str,ex|p(str_gn|
|00003b90| 75 6d 28 73 31 29 29 29 | 3b 0d 09 20 20 20 20 62 |um(s1)))|;.. b|
|00003ba0| 72 65 61 6b 3b 0d 09 63 | 61 73 65 20 4f 5f 4c 4f |reak;..c|ase O_LO|
|00003bb0| 47 3a 0d 09 43 48 45 43 | 4b 31 3b 0d 09 20 20 20 |G:..CHEC|K1;.. |
|00003bc0| 20 73 74 72 5f 6e 75 6d | 73 65 74 28 73 74 72 2c | str_num|set(str,|
|00003bd0| 6c 6f 67 28 73 74 72 5f | 67 6e 75 6d 28 73 31 29 |log(str_|gnum(s1)|
|00003be0| 29 29 3b 0d 09 20 20 20 | 20 62 72 65 61 6b 3b 0d |));.. | break;.|
|00003bf0| 09 63 61 73 65 20 4f 5f | 53 51 52 54 3a 0d 09 43 |.case O_|SQRT:..C|
|00003c00| 48 45 43 4b 31 3b 0d 09 | 20 20 20 20 73 74 72 5f |HECK1;..| str_|
|00003c10| 6e 75 6d 73 65 74 28 73 | 74 72 2c 73 71 72 74 28 |numset(s|tr,sqrt(|
|00003c20| 73 74 72 5f 67 6e 75 6d | 28 73 31 29 29 29 3b 0d |str_gnum|(s1)));.|
|00003c30| 09 20 20 20 20 62 72 65 | 61 6b 3b 0d 09 63 61 73 |. bre|ak;..cas|
|00003c40| 65 20 4f 5f 49 4e 54 3a | 0d 09 43 48 45 43 4b 31 |e O_INT:|..CHECK1|
|00003c50| 3b 0d 09 20 20 20 20 76 | 61 6c 75 65 20 3d 20 73 |;.. v|alue = s|
|00003c60| 74 72 5f 67 6e 75 6d 28 | 73 31 29 3b 0d 23 69 66 |tr_gnum(|s1);.#if|
|00003c70| 64 65 66 20 6d 61 63 69 | 6e 74 6f 73 68 0d 09 20 |def maci|ntosh.. |
|00003c80| 20 20 20 7b 0d 09 20 20 | 20 20 20 09 65 78 74 65 | {.. | .exte|
|00003c90| 6e 64 65 64 20 65 72 65 | 73 3b 0d 09 09 69 66 20 |nded ere|s;...if |
|00003ca0| 28 76 61 6c 75 65 20 3e | 3d 20 30 2e 30 29 0d 09 |(value >|= 0.0)..|
|00003cb0| 09 20 20 20 20 28 76 6f | 69 64 29 6d 6f 64 66 28 |. (vo|id)modf(|
|00003cc0| 76 61 6c 75 65 2c 26 65 | 72 65 73 29 3b 0d 09 09 |value,&e|res);...|
|00003cd0| 65 6c 73 65 20 7b 0d 09 | 09 20 20 20 20 28 76 6f |else {..|. (vo|
|00003ce0| 69 64 29 6d 6f 64 66 28 | 2d 76 61 6c 75 65 2c 26 |id)modf(|-value,&|
|00003cf0| 65 72 65 73 29 3b 0d 09 | 09 20 20 20 20 65 72 65 |eres);..|. ere|
|00003d00| 73 20 3d 20 2d 65 72 65 | 73 3b 0d 09 09 7d 0d 09 |s = -ere|s;...}..|
|00003d10| 20 20 20 20 09 73 74 72 | 5f 6e 75 6d 73 65 74 28 | .str|_numset(|
|00003d20| 73 74 72 2c 65 72 65 73 | 29 3b 0d 09 20 20 20 20 |str,eres|);.. |
|00003d30| 7d 09 09 0d 23 65 6c 73 | 65 0d 09 20 20 20 20 69 |}...#els|e.. i|
|00003d40| 66 20 28 76 61 6c 75 65 | 20 3e 3d 20 30 2e 30 29 |f (value| >= 0.0)|
|00003d50| 0d 09 09 28 76 6f 69 64 | 29 6d 6f 64 66 28 76 61 |...(void|)modf(va|
|00003d60| 6c 75 65 2c 26 76 61 6c | 75 65 29 3b 0d 09 20 20 |lue,&val|ue);.. |
|00003d70| 20 20 65 6c 73 65 20 7b | 0d 09 09 28 76 6f 69 64 | else {|...(void|
|00003d80| 29 6d 6f 64 66 28 2d 76 | 61 6c 75 65 2c 26 76 61 |)modf(-v|alue,&va|
|00003d90| 6c 75 65 29 3b 0d 09 09 | 76 61 6c 75 65 20 3d 20 |lue);...|value = |
|00003da0| 2d 76 61 6c 75 65 3b 0d | 09 20 20 20 20 7d 0d 09 |-value;.|. }..|
|00003db0| 20 20 20 20 73 74 72 5f | 6e 75 6d 73 65 74 28 73 | str_|numset(s|
|00003dc0| 74 72 2c 76 61 6c 75 65 | 29 3b 0d 23 65 6e 64 69 |tr,value|);.#endi|
|00003dd0| 66 09 20 20 20 20 0d 09 | 20 20 20 20 62 72 65 61 |f. ..| brea|
|00003de0| 6b 3b 0d 09 63 61 73 65 | 20 4f 5f 4f 52 44 3a 0d |k;..case| O_ORD:.|
|00003df0| 09 43 48 45 43 4b 31 3b | 0d 23 69 66 6e 64 65 66 |.CHECK1;|.#ifndef|
|00003e00| 20 49 32 38 36 0d 09 20 | 20 20 20 73 74 72 5f 6e | I286.. | str_n|
|00003e10| 75 6d 73 65 74 28 73 74 | 72 2c 28 64 6f 75 62 6c |umset(st|r,(doubl|
|00003e20| 65 29 28 2a 73 74 72 5f | 67 65 74 28 73 31 29 29 |e)(*str_|get(s1))|
|00003e30| 29 3b 0d 23 65 6c 73 65 | 0d 09 20 20 20 20 7b 0d |);.#else|.. {.|
|00003e40| 09 09 69 6e 74 20 20 7a | 61 70 63 3b 0d 09 09 63 |..int z|apc;...c|
|00003e50| 68 61 72 20 2a 7a 61 70 | 73 3b 0d 0d 09 09 7a 61 |har *zap|s;....za|
|00003e60| 70 73 20 3d 20 73 74 72 | 5f 67 65 74 28 73 31 29 |ps = str|_get(s1)|
|00003e70| 3b 0d 09 09 7a 61 70 63 | 20 3d 20 28 69 6e 74 29 |;...zapc| = (int)|
|00003e80| 20 2a 7a 61 70 73 3b 0d | 09 09 73 74 72 5f 6e 75 | *zaps;.|..str_nu|
|00003e90| 6d 73 65 74 28 73 74 72 | 2c 28 64 6f 75 62 6c 65 |mset(str|,(double|
|00003ea0| 29 28 7a 61 70 63 29 29 | 3b 0d 09 20 20 20 20 7d |)(zapc))|;.. }|
|00003eb0| 0d 23 65 6e 64 69 66 0d | 09 20 20 20 20 62 72 65 |.#endif.|. bre|
|00003ec0| 61 6b 3b 0d 09 7d 0d 20 | 20 20 20 61 72 67 2d 3e |ak;..}. | arg->|
|00003ed0| 61 72 67 5f 74 79 70 65 | 20 3d 20 4f 5f 49 54 45 |arg_type| = O_ITE|
|00003ee0| 4d 3b 09 2f 2a 20 6e 6f | 74 65 20 61 72 67 31 20 |M;./* no|te arg1 |
|00003ef0| 74 79 70 65 20 69 73 20 | 61 6c 72 65 61 64 79 20 |type is |already |
|00003f00| 53 49 4e 47 4c 45 20 2a | 2f 0d 20 20 20 20 73 74 |SINGLE *|/. st|
|00003f10| 72 5f 66 72 65 65 28 73 | 31 29 3b 0d 20 20 20 20 |r_free(s|1);. |
|00003f20| 61 72 67 5b 31 5d 2e 61 | 72 67 5f 70 74 72 2e 61 |arg[1].a|rg_ptr.a|
|00003f30| 72 67 5f 73 74 72 20 3d | 20 73 74 72 3b 0d 20 20 |rg_str =| str;. |
|00003f40| 20 20 69 66 20 28 73 32 | 29 20 7b 0d 09 73 74 72 | if (s2|) {..str|
|00003f50| 5f 66 72 65 65 28 73 32 | 29 3b 0d 09 61 72 67 5b |_free(s2|);..arg[|
|00003f60| 32 5d 2e 61 72 67 5f 70 | 74 72 2e 61 72 67 5f 73 |2].arg_p|tr.arg_s|
|00003f70| 74 72 20 3d 20 4e 75 6c | 6c 73 74 72 3b 0d 09 61 |tr = Nul|lstr;..a|
|00003f80| 72 67 5b 32 5d 2e 61 72 | 67 5f 74 79 70 65 20 3d |rg[2].ar|g_type =|
|00003f90| 20 41 5f 4e 55 4c 4c 3b | 0d 20 20 20 20 7d 0d 20 | A_NULL;|. }. |
|00003fa0| 20 20 20 73 74 72 20 3d | 20 4e 75 6c 6c 73 74 72 | str =| Nullstr|
|00003fb0| 3b 0d 0d 20 20 20 20 72 | 65 74 75 72 6e 20 61 72 |;.. r|eturn ar|
|00003fc0| 67 3b 0d 7d 0d 0d 41 52 | 47 20 2a 0d 6c 28 61 72 |g;.}..AR|G *.l(ar|
|00003fd0| 67 29 0d 72 65 67 69 73 | 74 65 72 20 41 52 47 20 |g).regis|ter ARG |
|00003fe0| 2a 61 72 67 3b 0d 7b 0d | 20 20 20 20 72 65 67 69 |*arg;.{.| regi|
|00003ff0| 73 74 65 72 20 69 6e 74 | 20 69 3b 0d 20 20 20 20 |ster int| i;. |
|00004000| 72 65 67 69 73 74 65 72 | 20 41 52 47 20 2a 61 72 |register| ARG *ar|
|00004010| 67 31 3b 0d 20 20 20 20 | 72 65 67 69 73 74 65 72 |g1;. |register|
|00004020| 20 41 52 47 20 2a 61 72 | 67 32 3b 0d 20 20 20 20 | ARG *ar|g2;. |
|00004030| 53 50 41 54 20 2a 73 70 | 61 74 3b 0d 20 20 20 20 |SPAT *sp|at;. |
|00004040| 69 6e 74 20 61 72 67 68 | 6f 67 20 3d 20 30 3b 0d |int argh|og = 0;.|
|00004050| 0d 20 20 20 20 69 20 3d | 20 61 72 67 5b 31 5d 2e |. i =| arg[1].|
|00004060| 61 72 67 5f 74 79 70 65 | 20 26 20 41 5f 4d 41 53 |arg_type| & A_MAS|
|00004070| 4b 3b 0d 0d 20 20 20 20 | 61 72 67 2d 3e 61 72 67 |K;.. |arg->arg|
|00004080| 5f 66 6c 61 67 73 20 7c | 3d 20 41 46 5f 43 4f 4d |_flags ||= AF_COM|
|00004090| 4d 4f 4e 3b 09 2f 2a 20 | 61 73 73 75 6d 65 20 73 |MON;./* |assume s|
|000040a0| 6f 6d 65 74 68 69 6e 67 | 20 69 6e 20 63 6f 6d 6d |omething| in comm|
|000040b0| 6f 6e 20 2a 2f 0d 09 09 | 09 09 09 2f 2a 20 77 68 |on */...|.../* wh|
|000040c0| 69 63 68 20 66 6f 72 63 | 65 73 20 75 73 20 74 6f |ich forc|es us to|
|000040d0| 20 63 6f 70 79 20 74 68 | 69 6e 67 73 20 2a 2f 0d | copy th|ings */.|
|000040e0| 0d 20 20 20 20 69 66 20 | 28 69 20 3d 3d 20 41 5f |. if |(i == A_|
|000040f0| 41 52 59 4c 45 4e 29 20 | 7b 0d 09 61 72 67 5b 31 |ARYLEN) |{..arg[1|
|00004100| 5d 2e 61 72 67 5f 74 79 | 70 65 20 3d 20 41 5f 4c |].arg_ty|pe = A_L|
|00004110| 41 52 59 4c 45 4e 3b 0d | 09 72 65 74 75 72 6e 20 |ARYLEN;.|.return |
|00004120| 61 72 67 3b 0d 20 20 20 | 20 7d 0d 20 20 20 20 69 |arg;. | }. i|
|00004130| 66 20 28 69 20 3d 3d 20 | 41 5f 41 52 59 53 54 41 |f (i == |A_ARYSTA|
|00004140| 42 29 20 7b 0d 09 61 72 | 67 5b 31 5d 2e 61 72 67 |B) {..ar|g[1].arg|
|00004150| 5f 74 79 70 65 20 3d 20 | 41 5f 4c 41 52 59 53 54 |_type = |A_LARYST|
|00004160| 41 42 3b 0d 09 72 65 74 | 75 72 6e 20 61 72 67 3b |AB;..ret|urn arg;|
|00004170| 0d 20 20 20 20 7d 0d 0d | 20 20 20 20 2f 2a 20 73 |. }..| /* s|
|00004180| 65 65 20 69 66 20 69 74 | 27 73 20 61 6e 20 61 72 |ee if it|'s an ar|
|00004190| 72 61 79 20 72 65 66 65 | 72 65 6e 63 65 20 2a 2f |ray refe|rence */|
|000041a0| 0d 0d 20 20 20 20 69 66 | 20 28 69 20 3d 3d 20 41 |.. if| (i == A|
|000041b0| 5f 45 58 50 52 20 7c 7c | 20 69 20 3d 3d 20 41 5f |_EXPR ||| i == A_|
|000041c0| 4c 45 58 50 52 29 20 7b | 0d 09 61 72 67 31 20 3d |LEXPR) {|..arg1 =|
|000041d0| 20 61 72 67 5b 31 5d 2e | 61 72 67 5f 70 74 72 2e | arg[1].|arg_ptr.|
|000041e0| 61 72 67 5f 61 72 67 3b | 0d 0d 09 69 66 20 28 61 |arg_arg;|...if (a|
|000041f0| 72 67 31 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |rg1->arg|_type ==|
|00004200| 20 4f 5f 4c 49 53 54 20 | 7c 7c 20 61 72 67 31 2d | O_LIST ||| arg1-|
|00004210| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 49 |>arg_typ|e == O_I|
|00004220| 54 45 4d 29 20 7b 0d 09 | 09 09 09 09 09 2f 2a 20 |TEM) {..|...../* |
|00004230| 61 73 73 69 67 6e 20 74 | 6f 20 6c 69 73 74 20 2a |assign t|o list *|
|00004240| 2f 0d 09 20 20 20 20 69 | 66 20 28 61 72 67 2d 3e |/.. i|f (arg->|
|00004250| 61 72 67 5f 6c 65 6e 20 | 3e 20 31 29 20 7b 0d 09 |arg_len |> 1) {..|
|00004260| 09 64 65 68 6f 69 73 74 | 28 61 72 67 2c 32 29 3b |.dehoist|(arg,2);|
|00004270| 0d 09 09 61 72 67 32 20 | 3d 20 61 72 67 5b 32 5d |...arg2 |= arg[2]|
|00004280| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 61 72 67 |.arg_ptr|.arg_arg|
|00004290| 3b 0d 09 09 69 66 20 28 | 6e 6f 74 68 69 6e 67 5f |;...if (|nothing_|
|000042a0| 69 6e 5f 63 6f 6d 6d 6f | 6e 28 61 72 67 31 2c 61 |in_commo|n(arg1,a|
|000042b0| 72 67 32 29 29 0d 09 09 | 20 20 20 20 61 72 67 2d |rg2))...| arg-|
|000042c0| 3e 61 72 67 5f 66 6c 61 | 67 73 20 26 3d 20 7e 41 |>arg_fla|gs &= ~A|
|000042d0| 46 5f 43 4f 4d 4d 4f 4e | 3b 0d 09 09 69 66 20 28 |F_COMMON|;...if (|
|000042e0| 61 72 67 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |arg->arg|_type ==|
|000042f0| 20 4f 5f 41 53 53 49 47 | 4e 29 20 7b 0d 09 09 20 | O_ASSIG|N) {... |
|00004300| 20 20 20 69 66 20 28 61 | 72 67 31 2d 3e 61 72 67 | if (a|rg1->arg|
|00004310| 5f 66 6c 61 67 73 20 26 | 20 41 46 5f 4c 4f 43 41 |_flags &| AF_LOCA|
|00004320| 4c 29 0d 09 09 09 61 72 | 67 2d 3e 61 72 67 5f 66 |L)....ar|g->arg_f|
|00004330| 6c 61 67 73 20 7c 3d 20 | 41 46 5f 4c 4f 43 41 4c |lags |= |AF_LOCAL|
|00004340| 3b 0d 09 09 20 20 20 20 | 61 72 67 5b 31 5d 2e 61 |;... |arg[1].a|
|00004350| 72 67 5f 66 6c 61 67 73 | 20 7c 3d 20 41 46 5f 41 |rg_flags| |= AF_A|
|00004360| 52 59 4f 4b 3b 0d 09 09 | 20 20 20 20 61 72 67 5b |RYOK;...| arg[|
|00004370| 32 5d 2e 61 72 67 5f 66 | 6c 61 67 73 20 7c 3d 20 |2].arg_f|lags |= |
|00004380| 41 46 5f 41 52 59 4f 4b | 3b 0d 09 09 7d 0d 09 20 |AF_ARYOK|;...}.. |
|00004390| 20 20 20 7d 0d 09 20 20 | 20 20 65 6c 73 65 20 69 | }.. | else i|
|000043a0| 66 20 28 61 72 67 2d 3e | 61 72 67 5f 74 79 70 65 |f (arg->|arg_type|
|000043b0| 20 21 3d 20 4f 5f 43 48 | 4f 50 29 0d 09 09 61 72 | != O_CH|OP)...ar|
|000043c0| 67 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 20 4f 5f |g->arg_t|ype = O_|
|000043d0| 41 53 53 49 47 4e 3b 09 | 2f 2a 20 70 6f 73 73 69 |ASSIGN;.|/* possi|
|000043e0| 62 6c 65 20 6c 6f 63 61 | 6c 28 29 3b 20 2a 2f 0d |ble loca|l(); */.|
|000043f0| 09 20 20 20 20 66 6f 72 | 20 28 69 20 3d 20 61 72 |. for| (i = ar|
|00004400| 67 31 2d 3e 61 72 67 5f | 6c 65 6e 3b 20 69 20 3e |g1->arg_|len; i >|
|00004410| 3d 20 31 3b 20 69 2d 2d | 29 20 7b 0d 09 09 73 77 |= 1; i--|) {...sw|
|00004420| 69 74 63 68 20 28 61 72 | 67 31 5b 69 5d 2e 61 72 |itch (ar|g1[i].ar|
|00004430| 67 5f 74 79 70 65 29 20 | 7b 0d 09 09 63 61 73 65 |g_type) |{...case|
|00004440| 20 41 5f 53 54 41 52 3a | 20 63 61 73 65 20 41 5f | A_STAR:| case A_|
|00004450| 4c 53 54 41 52 3a 0d 09 | 09 20 20 20 20 61 72 67 |LSTAR:..|. arg|
|00004460| 31 5b 69 5d 2e 61 72 67 | 5f 74 79 70 65 20 3d 20 |1[i].arg|_type = |
|00004470| 41 5f 4c 53 54 41 52 3b | 0d 09 09 20 20 20 20 62 |A_LSTAR;|... b|
|00004480| 72 65 61 6b 3b 0d 09 09 | 63 61 73 65 20 41 5f 53 |reak;...|case A_S|
|00004490| 54 41 42 3a 20 63 61 73 | 65 20 41 5f 4c 56 41 4c |TAB: cas|e A_LVAL|
|000044a0| 3a 0d 09 09 20 20 20 20 | 61 72 67 31 5b 69 5d 2e |:... |arg1[i].|
|000044b0| 61 72 67 5f 74 79 70 65 | 20 3d 20 41 5f 4c 56 41 |arg_type| = A_LVA|
|000044c0| 4c 3b 0d 09 09 20 20 20 | 20 62 72 65 61 6b 3b 0d |L;... | break;.|
|000044d0| 09 09 63 61 73 65 20 41 | 5f 41 52 59 4c 45 4e 3a |..case A|_ARYLEN:|
|000044e0| 20 63 61 73 65 20 41 5f | 4c 41 52 59 4c 45 4e 3a | case A_|LARYLEN:|
|000044f0| 0d 09 09 20 20 20 20 61 | 72 67 31 5b 69 5d 2e 61 |... a|rg1[i].a|
|00004500| 72 67 5f 74 79 70 65 20 | 3d 20 41 5f 4c 41 52 59 |rg_type |= A_LARY|
|00004510| 4c 45 4e 3b 0d 09 09 20 | 20 20 20 62 72 65 61 6b |LEN;... | break|
|00004520| 3b 0d 09 09 63 61 73 65 | 20 41 5f 41 52 59 53 54 |;...case| A_ARYST|
|00004530| 41 42 3a 20 63 61 73 65 | 20 41 5f 4c 41 52 59 53 |AB: case| A_LARYS|
|00004540| 54 41 42 3a 0d 09 09 20 | 20 20 20 61 72 67 31 5b |TAB:... | arg1[|
|00004550| 69 5d 2e 61 72 67 5f 74 | 79 70 65 20 3d 20 41 5f |i].arg_t|ype = A_|
|00004560| 4c 41 52 59 53 54 41 42 | 3b 0d 09 09 20 20 20 20 |LARYSTAB|;... |
|00004570| 62 72 65 61 6b 3b 0d 09 | 09 63 61 73 65 20 41 5f |break;..|.case A_|
|00004580| 45 58 50 52 3a 20 63 61 | 73 65 20 41 5f 4c 45 58 |EXPR: ca|se A_LEX|
|00004590| 50 52 3a 0d 09 09 20 20 | 20 20 61 72 67 31 5b 69 |PR:... | arg1[i|
|000045a0| 5d 2e 61 72 67 5f 74 79 | 70 65 20 3d 20 41 5f 4c |].arg_ty|pe = A_L|
|000045b0| 45 58 50 52 3b 0d 09 09 | 20 20 20 20 73 77 69 74 |EXPR;...| swit|
|000045c0| 63 68 28 61 72 67 31 5b | 69 5d 2e 61 72 67 5f 70 |ch(arg1[|i].arg_p|
|000045d0| 74 72 2e 61 72 67 5f 61 | 72 67 2d 3e 61 72 67 5f |tr.arg_a|rg->arg_|
|000045e0| 74 79 70 65 29 20 7b 0d | 09 09 20 20 20 20 63 61 |type) {.|.. ca|
|000045f0| 73 65 20 4f 5f 41 52 52 | 41 59 3a 20 63 61 73 65 |se O_ARR|AY: case|
|00004600| 20 4f 5f 4c 41 52 52 41 | 59 3a 0d 09 09 09 61 72 | O_LARRA|Y:....ar|
|00004610| 67 31 5b 69 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |g1[i].ar|g_ptr.ar|
|00004620| 67 5f 61 72 67 2d 3e 61 | 72 67 5f 74 79 70 65 20 |g_arg->a|rg_type |
|00004630| 3d 20 4f 5f 4c 41 52 52 | 41 59 3b 0d 09 09 09 61 |= O_LARR|AY;....a|
|00004640| 72 67 68 6f 67 20 3d 20 | 31 3b 0d 09 09 09 62 72 |rghog = |1;....br|
|00004650| 65 61 6b 3b 0d 09 09 20 | 20 20 20 63 61 73 65 20 |eak;... | case |
|00004660| 4f 5f 41 45 4c 45 4d 3a | 20 63 61 73 65 20 4f 5f |O_AELEM:| case O_|
|00004670| 4c 41 45 4c 45 4d 3a 0d | 09 09 09 61 72 67 31 5b |LAELEM:.|...arg1[|
|00004680| 69 5d 2e 61 72 67 5f 70 | 74 72 2e 61 72 67 5f 61 |i].arg_p|tr.arg_a|
|00004690| 72 67 2d 3e 61 72 67 5f | 74 79 70 65 20 3d 20 4f |rg->arg_|type = O|
|000046a0| 5f 4c 41 45 4c 45 4d 3b | 0d 09 09 09 62 72 65 61 |_LAELEM;|....brea|
|000046b0| 6b 3b 0d 09 09 20 20 20 | 20 63 61 73 65 20 4f 5f |k;... | case O_|
|000046c0| 48 41 53 48 3a 20 63 61 | 73 65 20 4f 5f 4c 48 41 |HASH: ca|se O_LHA|
|000046d0| 53 48 3a 0d 09 09 09 61 | 72 67 31 5b 69 5d 2e 61 |SH:....a|rg1[i].a|
|000046e0| 72 67 5f 70 74 72 2e 61 | 72 67 5f 61 72 67 2d 3e |rg_ptr.a|rg_arg->|
|000046f0| 61 72 67 5f 74 79 70 65 | 20 3d 20 4f 5f 4c 48 41 |arg_type| = O_LHA|
|00004700| 53 48 3b 0d 09 09 09 61 | 72 67 68 6f 67 20 3d 20 |SH;....a|rghog = |
|00004710| 31 3b 0d 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 20 |1;....br|eak;... |
|00004720| 20 20 20 63 61 73 65 20 | 4f 5f 48 45 4c 45 4d 3a | case |O_HELEM:|
|00004730| 20 63 61 73 65 20 4f 5f | 4c 48 45 4c 45 4d 3a 0d | case O_|LHELEM:.|
|00004740| 09 09 09 61 72 67 31 5b | 69 5d 2e 61 72 67 5f 70 |...arg1[|i].arg_p|
|00004750| 74 72 2e 61 72 67 5f 61 | 72 67 2d 3e 61 72 67 5f |tr.arg_a|rg->arg_|
|00004760| 74 79 70 65 20 3d 20 4f | 5f 4c 48 45 4c 45 4d 3b |type = O|_LHELEM;|
|00004770| 0d 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 20 20 20 |....brea|k;... |
|00004780| 20 63 61 73 65 20 4f 5f | 41 53 4c 49 43 45 3a 20 | case O_|ASLICE: |
|00004790| 63 61 73 65 20 4f 5f 4c | 41 53 4c 49 43 45 3a 0d |case O_L|ASLICE:.|
|000047a0| 09 09 09 61 72 67 31 5b | 69 5d 2e 61 72 67 5f 70 |...arg1[|i].arg_p|
|000047b0| 74 72 2e 61 72 67 5f 61 | 72 67 2d 3e 61 72 67 5f |tr.arg_a|rg->arg_|
|000047c0| 74 79 70 65 20 3d 20 4f | 5f 4c 41 53 4c 49 43 45 |type = O|_LASLICE|
|000047d0| 3b 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 20 20 |;....bre|ak;... |
|000047e0| 20 20 63 61 73 65 20 4f | 5f 48 53 4c 49 43 45 3a | case O|_HSLICE:|
|000047f0| 20 63 61 73 65 20 4f 5f | 4c 48 53 4c 49 43 45 3a | case O_|LHSLICE:|
|00004800| 0d 09 09 09 61 72 67 31 | 5b 69 5d 2e 61 72 67 5f |....arg1|[i].arg_|
|00004810| 70 74 72 2e 61 72 67 5f | 61 72 67 2d 3e 61 72 67 |ptr.arg_|arg->arg|
|00004820| 5f 74 79 70 65 20 3d 20 | 4f 5f 4c 48 53 4c 49 43 |_type = |O_LHSLIC|
|00004830| 45 3b 0d 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 20 |E;....br|eak;... |
|00004840| 20 20 20 63 61 73 65 20 | 4f 5f 53 55 42 53 54 52 | case |O_SUBSTR|
|00004850| 3a 20 63 61 73 65 20 4f | 5f 56 45 43 3a 0d 09 09 |: case O|_VEC:...|
|00004860| 09 28 76 6f 69 64 29 6c | 28 61 72 67 31 5b 69 5d |.(void)l|(arg1[i]|
|00004870| 2e 61 72 67 5f 70 74 72 | 2e 61 72 67 5f 61 72 67 |.arg_ptr|.arg_arg|
|00004880| 29 3b 0d 09 09 09 52 65 | 6e 65 77 63 28 61 72 67 |);....Re|newc(arg|
|00004890| 31 5b 69 5d 2e 61 72 67 | 5f 70 74 72 2e 61 72 67 |1[i].arg|_ptr.arg|
|000048a0| 5f 61 72 67 2d 3e 61 72 | 67 5f 70 74 72 2e 61 72 |_arg->ar|g_ptr.ar|
|000048b0| 67 5f 73 74 72 2c 20 31 | 2c 0d 09 09 09 20 20 73 |g_str, 1|,.... s|
|000048c0| 74 72 75 63 74 20 6c 73 | 74 72 69 6e 67 2c 20 53 |truct ls|tring, S|
|000048d0| 54 52 29 3b 0d 09 09 09 | 20 20 20 20 2f 2a 20 67 |TR);....| /* g|
|000048e0| 72 6f 77 20 73 74 72 69 | 6e 67 20 73 74 72 75 63 |row stri|ng struc|
|000048f0| 74 20 74 6f 20 68 6f 6c | 64 20 61 6e 20 6c 73 74 |t to hol|d an lst|
|00004900| 72 69 6e 67 20 73 74 72 | 75 63 74 20 2a 2f 0d 09 |ring str|uct */..|
|00004910| 09 09 62 72 65 61 6b 3b | 0d 09 09 20 20 20 20 64 |..break;|... d|
|00004920| 65 66 61 75 6c 74 3a 0d | 09 09 09 67 6f 74 6f 20 |efault:.|...goto |
|00004930| 69 6c 6c 5f 69 74 65 6d | 3b 0d 09 09 20 20 20 20 |ill_item|;... |
|00004940| 7d 0d 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0d 09 |}... |break;..|
|00004950| 09 64 65 66 61 75 6c 74 | 3a 0d 09 09 20 20 69 6c |.default|:... il|
|00004960| 6c 5f 69 74 65 6d 3a 0d | 09 09 20 20 20 20 28 76 |l_item:.|.. (v|
|00004970| 6f 69 64 29 73 70 72 69 | 6e 74 66 28 74 6f 6b 65 |oid)spri|ntf(toke|
|00004980| 6e 62 75 66 2c 20 22 49 | 6c 6c 65 67 61 6c 20 69 |nbuf, "I|llegal i|
|00004990| 74 65 6d 20 28 25 73 29 | 20 61 73 20 6c 76 61 6c |tem (%s)| as lval|
|000049a0| 75 65 22 2c 0d 09 09 20 | 20 20 20 20 20 61 72 67 |ue",... | arg|
|000049b0| 6e 61 6d 65 5b 61 72 67 | 31 5b 69 5d 2e 61 72 67 |name[arg|1[i].arg|
|000049c0| 5f 74 79 70 65 26 41 5f | 4d 41 53 4b 5d 29 3b 0d |_type&A_|MASK]);.|
|000049d0| 09 09 20 20 20 20 79 79 | 65 72 72 6f 72 28 74 6f |.. yy|error(to|
|000049e0| 6b 65 6e 62 75 66 29 3b | 0d 09 09 7d 0d 09 20 20 |kenbuf);|...}.. |
|000049f0| 20 20 7d 0d 09 20 20 20 | 20 69 66 20 28 61 72 67 | }.. | if (arg|
|00004a00| 2d 3e 61 72 67 5f 6c 65 | 6e 20 3e 20 31 29 20 7b |->arg_le|n > 1) {|
|00004a10| 0d 09 09 69 66 20 28 61 | 72 67 32 2d 3e 61 72 67 |...if (a|rg2->arg|
|00004a20| 5f 74 79 70 65 20 3d 3d | 20 4f 5f 53 50 4c 49 54 |_type ==| O_SPLIT|
|00004a30| 20 26 26 20 21 61 72 67 | 32 5b 33 5d 2e 61 72 67 | && !arg|2[3].arg|
|00004a40| 5f 74 79 70 65 20 26 26 | 20 21 61 72 67 68 6f 67 |_type &&| !arghog|
|00004a50| 29 20 7b 0d 09 09 20 20 | 20 20 61 72 67 32 5b 33 |) {... | arg2[3|
|00004a60| 5d 2e 61 72 67 5f 74 79 | 70 65 20 3d 20 41 5f 53 |].arg_ty|pe = A_S|
|00004a70| 49 4e 47 4c 45 3b 0d 09 | 09 20 20 20 20 61 72 67 |INGLE;..|. arg|
|00004a80| 32 5b 33 5d 2e 61 72 67 | 5f 70 74 72 2e 61 72 67 |2[3].arg|_ptr.arg|
|00004a90| 5f 73 74 72 20 3d 0d 09 | 09 20 20 20 20 20 20 73 |_str =..|. s|
|00004aa0| 74 72 5f 6e 6d 61 6b 65 | 28 28 64 6f 75 62 6c 65 |tr_nmake|((double|
|00004ab0| 29 61 72 67 31 2d 3e 61 | 72 67 5f 6c 65 6e 20 2b |)arg1->a|rg_len +|
|00004ac0| 20 31 29 3b 20 2f 2a 20 | 6c 69 6d 69 74 20 73 70 | 1); /* |limit sp|
|00004ad0| 6c 69 74 20 6c 65 6e 2a | 2f 0d 09 09 7d 0d 09 20 |lit len*|/...}.. |
|00004ae0| 20 20 20 7d 0d 09 7d 0d | 09 65 6c 73 65 20 69 66 | }..}.|.else if|
|00004af0| 20 28 61 72 67 31 2d 3e | 61 72 67 5f 74 79 70 65 | (arg1->|arg_type|
|00004b00| 20 3d 3d 20 4f 5f 41 45 | 4c 45 4d 20 7c 7c 20 61 | == O_AE|LEM || a|
|00004b10| 72 67 31 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |rg1->arg|_type ==|
|00004b20| 20 4f 5f 4c 41 45 4c 45 | 4d 29 0d 09 20 20 20 20 | O_LAELE|M).. |
|00004b30| 69 66 20 28 61 72 67 2d | 3e 61 72 67 5f 74 79 70 |if (arg-|>arg_typ|
|00004b40| 65 20 3d 3d 20 4f 5f 44 | 45 46 49 4e 45 44 29 0d |e == O_D|EFINED).|
|00004b50| 09 09 61 72 67 31 2d 3e | 61 72 67 5f 74 79 70 65 |..arg1->|arg_type|
|00004b60| 20 3d 20 4f 5f 41 45 4c | 45 4d 3b 0d 09 20 20 20 | = O_AEL|EM;.. |
|00004b70| 20 65 6c 73 65 0d 09 09 | 61 72 67 31 2d 3e 61 72 | else...|arg1->ar|
|00004b80| 67 5f 74 79 70 65 20 3d | 20 4f 5f 4c 41 45 4c 45 |g_type =| O_LAELE|
|00004b90| 4d 3b 0d 09 65 6c 73 65 | 20 69 66 20 28 61 72 67 |M;..else| if (arg|
|00004ba0| 31 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 4f |1->arg_t|ype == O|
|00004bb0| 5f 41 52 52 41 59 20 7c | 7c 20 61 72 67 31 2d 3e |_ARRAY ||| arg1->|
|00004bc0| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 4f 5f 4c 41 |arg_type| == O_LA|
|00004bd0| 52 52 41 59 29 20 7b 0d | 09 20 20 20 20 61 72 67 |RRAY) {.|. arg|
|00004be0| 31 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 20 4f 5f |1->arg_t|ype = O_|
|00004bf0| 4c 41 52 52 41 59 3b 0d | 09 20 20 20 20 69 66 20 |LARRAY;.|. if |
|00004c00| 28 61 72 67 2d 3e 61 72 | 67 5f 6c 65 6e 20 3e 20 |(arg->ar|g_len > |
|00004c10| 31 29 20 7b 0d 09 09 64 | 65 68 6f 69 73 74 28 61 |1) {...d|ehoist(a|
|00004c20| 72 67 2c 32 29 3b 0d 09 | 09 61 72 67 32 20 3d 20 |rg,2);..|.arg2 = |
|00004c30| 61 72 67 5b 32 5d 2e 61 | 72 67 5f 70 74 72 2e 61 |arg[2].a|rg_ptr.a|
|00004c40| 72 67 5f 61 72 67 3b 0d | 09 09 69 66 20 28 61 72 |rg_arg;.|..if (ar|
|00004c50| 67 32 2d 3e 61 72 67 5f | 74 79 70 65 20 3d 3d 20 |g2->arg_|type == |
|00004c60| 4f 5f 53 50 4c 49 54 29 | 20 7b 20 2f 2a 20 75 73 |O_SPLIT)| { /* us|
|00004c70| 65 20 73 70 6c 69 74 27 | 73 20 62 75 69 6c 74 69 |e split'|s builti|
|00004c80| 6e 20 3d 3f 2a 2f 0d 09 | 09 20 20 20 20 73 70 61 |n =?*/..|. spa|
|00004c90| 74 20 3d 20 61 72 67 32 | 5b 32 5d 2e 61 72 67 5f |t = arg2|[2].arg_|
|00004ca0| 70 74 72 2e 61 72 67 5f | 73 70 61 74 3b 0d 09 09 |ptr.arg_|spat;...|
|00004cb0| 20 20 20 20 69 66 20 28 | 21 28 73 70 61 74 2d 3e | if (|!(spat->|
|00004cc0| 73 70 61 74 5f 66 6c 61 | 67 73 20 26 20 53 50 41 |spat_fla|gs & SPA|
|00004cd0| 54 5f 4f 4e 43 45 29 20 | 26 26 0d 09 09 20 20 20 |T_ONCE) |&&... |
|00004ce0| 20 20 20 6e 6f 74 68 69 | 6e 67 5f 69 6e 5f 63 6f | nothi|ng_in_co|
|00004cf0| 6d 6d 6f 6e 28 61 72 67 | 31 2c 73 70 61 74 2d 3e |mmon(arg|1,spat->|
|00004d00| 73 70 61 74 5f 72 65 70 | 6c 29 29 20 7b 0d 09 09 |spat_rep|l)) {...|
|00004d10| 09 73 70 61 74 2d 3e 73 | 70 61 74 5f 72 65 70 6c |.spat->s|pat_repl|
|00004d20| 5b 31 5d 2e 61 72 67 5f | 70 74 72 2e 61 72 67 5f |[1].arg_|ptr.arg_|
|00004d30| 73 74 61 62 20 3d 0d 09 | 09 09 20 20 20 20 61 72 |stab =..|.. ar|
|00004d40| 67 31 5b 31 5d 2e 61 72 | 67 5f 70 74 72 2e 61 72 |g1[1].ar|g_ptr.ar|
|00004d50| 67 5f 73 74 61 62 3b 0d | 09 09 09 61 72 67 31 5b |g_stab;.|...arg1[|
|00004d60| 31 5d 2e 61 72 67 5f 70 | 74 72 2e 61 72 67 5f 73 |1].arg_p|tr.arg_s|
|00004d70| 74 61 62 20 3d 20 4e 75 | 6c 6c 73 74 61 62 3b 0d |tab = Nu|llstab;.|
|00004d80| 09 09 09 73 70 61 74 2d | 3e 73 70 61 74 5f 66 6c |...spat-|>spat_fl|
|00004d90| 61 67 73 20 7c 3d 20 53 | 50 41 54 5f 4f 4e 43 45 |ags |= S|PAT_ONCE|
|00004da0| 3b 0d 09 09 09 61 72 67 | 5f 66 72 65 65 28 61 72 |;....arg|_free(ar|
|00004db0| 67 31 29 3b 09 2f 2a 20 | 72 65 63 75 72 73 69 76 |g1);./* |recursiv|
|00004dc0| 65 20 2a 2f 0d 09 09 09 | 61 72 67 5b 31 5d 2e 61 |e */....|arg[1].a|
|00004dd0| 72 67 5f 70 74 72 2e 61 | 72 67 5f 61 72 67 20 3d |rg_ptr.a|rg_arg =|
|00004de0| 20 4e 75 6c 6c 61 72 67 | 3b 0d 09 09 09 66 72 65 | Nullarg|;....fre|
|00004df0| 65 5f 61 72 67 28 61 72 | 67 29 3b 09 2f 2a 20 6e |e_arg(ar|g);./* n|
|00004e00| 6f 6e 2d 72 65 63 75 72 | 73 69 76 65 20 2a 2f 0d |on-recur|sive */.|
|00004e10| 09 09 09 72 65 74 75 72 | 6e 20 61 72 67 32 3b 09 |...retur|n arg2;.|
|00004e20| 2f 2a 20 73 70 6c 69 74 | 20 68 61 73 20 62 75 69 |/* split| has bui|
|00004e30| 6c 74 69 6e 20 61 73 73 | 69 67 6e 20 2a 2f 0d 09 |ltin ass|ign */..|
|00004e40| 09 20 20 20 20 7d 0d 09 | 09 7d 0d 09 09 65 6c 73 |. }..|.}...els|
|00004e50| 65 20 69 66 20 28 6e 6f | 74 68 69 6e 67 5f 69 6e |e if (no|thing_in|
|00004e60| 5f 63 6f 6d 6d 6f 6e 28 | 61 72 67 31 2c 61 72 67 |_common(|arg1,arg|
|00004e70| 32 29 29 0d 09 09 20 20 | 20 20 61 72 67 2d 3e 61 |2))... | arg->a|
|00004e80| 72 67 5f 66 6c 61 67 73 | 20 26 3d 20 7e 41 46 5f |rg_flags| &= ~AF_|
|00004e90| 43 4f 4d 4d 4f 4e 3b 0d | 09 09 69 66 20 28 61 72 |COMMON;.|..if (ar|
|00004ea0| 67 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 4f |g->arg_t|ype == O|
|00004eb0| 5f 41 53 53 49 47 4e 29 | 20 7b 0d 09 09 20 20 20 |_ASSIGN)| {... |
|00004ec0| 20 61 72 67 5b 31 5d 2e | 61 72 67 5f 66 6c 61 67 | arg[1].|arg_flag|
|00004ed0| 73 20 7c 3d 20 41 46 5f | 41 52 59 4f 4b 3b 0d 09 |s |= AF_|ARYOK;..|
|00004ee0| 09 20 20 20 20 61 72 67 | 5b 32 5d 2e 61 72 67 5f |. arg|[2].arg_|
|00004ef0| 66 6c 61 67 73 20 7c 3d | 20 41 46 5f 41 52 59 4f |flags |=| AF_ARYO|
|00004f00| 4b 3b 0d 09 09 7d 0d 09 | 20 20 20 20 7d 0d 09 20 |K;...}..| }.. |
|00004f10| 20 20 20 65 6c 73 65 20 | 69 66 20 28 61 72 67 2d | else |if (arg-|
|00004f20| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 41 |>arg_typ|e == O_A|
|00004f30| 53 53 49 47 4e 29 0d 09 | 09 61 72 67 5b 31 5d 2e |SSIGN)..|.arg[1].|
|00004f40| 61 72 67 5f 66 6c 61 67 | 73 20 7c 3d 20 41 46 5f |arg_flag|s |= AF_|
|00004f50| 41 52 59 4f 4b 3b 0d 09 | 7d 0d 09 65 6c 73 65 20 |ARYOK;..|}..else |
|00004f60| 69 66 20 28 61 72 67 31 | 2d 3e 61 72 67 5f 74 79 |if (arg1|->arg_ty|
|00004f70| 70 65 20 3d 3d 20 4f 5f | 48 45 4c 45 4d 20 7c 7c |pe == O_|HELEM |||
|00004f80| 20 61 72 67 31 2d 3e 61 | 72 67 5f 74 79 70 65 20 | arg1->a|rg_type |
|00004f90| 3d 3d 20 4f 5f 4c 48 45 | 4c 45 4d 29 0d 09 20 20 |== O_LHE|LEM).. |
|00004fa0| 20 20 69 66 20 28 61 72 | 67 2d 3e 61 72 67 5f 74 | if (ar|g->arg_t|
|00004fb0| 79 70 65 20 3d 3d 20 4f | 5f 44 45 46 49 4e 45 44 |ype == O|_DEFINED|
|00004fc0| 29 0d 09 09 61 72 67 31 | 2d 3e 61 72 67 5f 74 79 |)...arg1|->arg_ty|
|00004fd0| 70 65 20 3d 20 4f 5f 48 | 45 4c 45 4d 3b 09 2f 2a |pe = O_H|ELEM;./*|
|00004fe0| 20 61 76 6f 69 64 20 63 | 72 65 61 74 69 6e 67 20 | avoid c|reating |
|00004ff0| 6f 6e 65 20 2a 2f 0d 09 | 20 20 20 20 65 6c 73 65 |one */..| else|
|00005000| 0d 09 09 61 72 67 31 2d | 3e 61 72 67 5f 74 79 70 |...arg1-|>arg_typ|
|00005010| 65 20 3d 20 4f 5f 4c 48 | 45 4c 45 4d 3b 0d 09 65 |e = O_LH|ELEM;..e|
|00005020| 6c 73 65 20 69 66 20 28 | 61 72 67 31 2d 3e 61 72 |lse if (|arg1->ar|
|00005030| 67 5f 74 79 70 65 20 3d | 3d 20 4f 5f 48 41 53 48 |g_type =|= O_HASH|
|00005040| 20 7c 7c 20 61 72 67 31 | 2d 3e 61 72 67 5f 74 79 | || arg1|->arg_ty|
|00005050| 70 65 20 3d 3d 20 4f 5f | 4c 48 41 53 48 29 20 7b |pe == O_|LHASH) {|
|00005060| 0d 09 20 20 20 20 61 72 | 67 31 2d 3e 61 72 67 5f |.. ar|g1->arg_|
|00005070| 74 79 70 65 20 3d 20 4f | 5f 4c 48 41 53 48 3b 0d |type = O|_LHASH;.|
|00005080| 09 20 20 20 20 69 66 20 | 28 61 72 67 2d 3e 61 72 |. if |(arg->ar|
|00005090| 67 5f 6c 65 6e 20 3e 20 | 31 29 20 7b 0d 09 09 64 |g_len > |1) {...d|
|000050a0| 65 68 6f 69 73 74 28 61 | 72 67 2c 32 29 3b 0d 09 |ehoist(a|rg,2);..|
|000050b0| 09 61 72 67 32 20 3d 20 | 61 72 67 5b 32 5d 2e 61 |.arg2 = |arg[2].a|
|000050c0| 72 67 5f 70 74 72 2e 61 | 72 67 5f 61 72 67 3b 0d |rg_ptr.a|rg_arg;.|
|000050d0| 09 09 69 66 20 28 6e 6f | 74 68 69 6e 67 5f 69 6e |..if (no|thing_in|
|000050e0| 5f 63 6f 6d 6d 6f 6e 28 | 61 72 67 31 2c 61 72 67 |_common(|arg1,arg|
|000050f0| 32 29 29 0d 09 09 20 20 | 20 20 61 72 67 2d 3e 61 |2))... | arg->a|
|00005100| 72 67 5f 66 6c 61 67 73 | 20 26 3d 20 7e 41 46 5f |rg_flags| &= ~AF_|
|00005110| 43 4f 4d 4d 4f 4e 3b 0d | 09 09 69 66 20 28 61 72 |COMMON;.|..if (ar|
|00005120| 67 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 4f |g->arg_t|ype == O|
|00005130| 5f 41 53 53 49 47 4e 29 | 20 7b 0d 09 09 20 20 20 |_ASSIGN)| {... |
|00005140| 20 61 72 67 5b 31 5d 2e | 61 72 67 5f 66 6c 61 67 | arg[1].|arg_flag|
|00005150| 73 20 7c 3d 20 41 46 5f | 41 52 59 4f 4b 3b 0d 09 |s |= AF_|ARYOK;..|
|00005160| 09 20 20 20 20 61 72 67 | 5b 32 5d 2e 61 72 67 5f |. arg|[2].arg_|
|00005170| 66 6c 61 67 73 20 7c 3d | 20 41 46 5f 41 52 59 4f |flags |=| AF_ARYO|
|00005180| 4b 3b 0d 09 09 7d 0d 09 | 20 20 20 20 7d 0d 09 20 |K;...}..| }.. |
|00005190| 20 20 20 65 6c 73 65 20 | 69 66 20 28 61 72 67 2d | else |if (arg-|
|000051a0| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 41 |>arg_typ|e == O_A|
|000051b0| 53 53 49 47 4e 29 0d 09 | 09 61 72 67 5b 31 5d 2e |SSIGN)..|.arg[1].|
|000051c0| 61 72 67 5f 66 6c 61 67 | 73 20 7c 3d 20 41 46 5f |arg_flag|s |= AF_|
|000051d0| 41 52 59 4f 4b 3b 0d 09 | 7d 0d 09 65 6c 73 65 20 |ARYOK;..|}..else |
|000051e0| 69 66 20 28 61 72 67 31 | 2d 3e 61 72 67 5f 74 79 |if (arg1|->arg_ty|
|000051f0| 70 65 20 3d 3d 20 4f 5f | 41 53 4c 49 43 45 29 20 |pe == O_|ASLICE) |
|00005200| 7b 0d 09 20 20 20 20 61 | 72 67 31 2d 3e 61 72 67 |{.. a|rg1->arg|
|00005210| 5f 74 79 70 65 20 3d 20 | 4f 5f 4c 41 53 4c 49 43 |_type = |O_LASLIC|
|00005220| 45 3b 0d 09 20 20 20 20 | 69 66 20 28 61 72 67 2d |E;.. |if (arg-|
|00005230| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 41 |>arg_typ|e == O_A|
|00005240| 53 53 49 47 4e 29 20 7b | 0d 09 09 64 65 68 6f 69 |SSIGN) {|...dehoi|
|00005250| 73 74 28 61 72 67 2c 32 | 29 3b 0d 09 09 61 72 67 |st(arg,2|);...arg|
|00005260| 5b 31 5d 2e 61 72 67 5f | 66 6c 61 67 73 20 7c 3d |[1].arg_|flags |=|
|00005270| 20 41 46 5f 41 52 59 4f | 4b 3b 0d 09 09 61 72 67 | AF_ARYO|K;...arg|
|00005280| 5b 32 5d 2e 61 72 67 5f | 66 6c 61 67 73 20 7c 3d |[2].arg_|flags |=|
|00005290| 20 41 46 5f 41 52 59 4f | 4b 3b 0d 09 20 20 20 20 | AF_ARYO|K;.. |
|000052a0| 7d 0d 09 7d 0d 09 65 6c | 73 65 20 69 66 20 28 61 |}..}..el|se if (a|
|000052b0| 72 67 31 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |rg1->arg|_type ==|
|000052c0| 20 4f 5f 48 53 4c 49 43 | 45 29 20 7b 0d 09 20 20 | O_HSLIC|E) {.. |
|000052d0| 20 20 61 72 67 31 2d 3e | 61 72 67 5f 74 79 70 65 | arg1->|arg_type|
|000052e0| 20 3d 20 4f 5f 4c 48 53 | 4c 49 43 45 3b 0d 09 20 | = O_LHS|LICE;.. |
|000052f0| 20 20 20 69 66 20 28 61 | 72 67 2d 3e 61 72 67 5f | if (a|rg->arg_|
|00005300| 74 79 70 65 20 3d 3d 20 | 4f 5f 41 53 53 49 47 4e |type == |O_ASSIGN|
|00005310| 29 20 7b 0d 09 09 64 65 | 68 6f 69 73 74 28 61 72 |) {...de|hoist(ar|
|00005320| 67 2c 32 29 3b 0d 09 09 | 61 72 67 5b 31 5d 2e 61 |g,2);...|arg[1].a|
|00005330| 72 67 5f 66 6c 61 67 73 | 20 7c 3d 20 41 46 5f 41 |rg_flags| |= AF_A|
|00005340| 52 59 4f 4b 3b 0d 09 09 | 61 72 67 5b 32 5d 2e 61 |RYOK;...|arg[2].a|
|00005350| 72 67 5f 66 6c 61 67 73 | 20 7c 3d 20 41 46 5f 41 |rg_flags| |= AF_A|
|00005360| 52 59 4f 4b 3b 0d 09 20 | 20 20 20 7d 0d 09 7d 0d |RYOK;.. | }..}.|
|00005370| 09 65 6c 73 65 20 69 66 | 20 28 28 61 72 67 2d 3e |.else if| ((arg->|
|00005380| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 4f 5f 44 45 |arg_type| == O_DE|
|00005390| 46 49 4e 45 44 20 7c 7c | 20 61 72 67 2d 3e 61 72 |FINED ||| arg->ar|
|000053a0| 67 5f 74 79 70 65 20 3d | 3d 20 4f 5f 55 4e 44 45 |g_type =|= O_UNDE|
|000053b0| 46 29 20 26 26 0d 09 20 | 20 28 61 72 67 31 2d 3e |F) &&.. | (arg1->|
|000053c0| 61 72 67 5f 74 79 70 65 | 20 3d 3d 20 28 70 65 72 |arg_type| == (per|
|000053d0| 6c 64 62 20 3f 20 4f 5f | 44 42 53 55 42 52 20 3a |ldb ? O_|DBSUBR :|
|000053e0| 20 4f 5f 53 55 42 52 29 | 29 20 29 20 7b 0d 09 20 | O_SUBR)|) ) {.. |
|000053f0| 20 20 20 61 72 67 5b 31 | 5d 2e 61 72 67 5f 74 79 | arg[1|].arg_ty|
|00005400| 70 65 20 7c 3d 20 41 5f | 44 4f 4e 54 3b 0d 09 7d |pe |= A_|DONT;..}|
|00005410| 0d 09 65 6c 73 65 20 69 | 66 20 28 61 72 67 31 2d |..else i|f (arg1-|
|00005420| 3e 61 72 67 5f 74 79 70 | 65 20 3d 3d 20 4f 5f 53 |>arg_typ|e == O_S|
|00005430| 55 42 53 54 52 20 7c 7c | 20 61 72 67 31 2d 3e 61 |UBSTR ||| arg1->a|
|00005440| 72 67 5f 74 79 70 65 20 | 3d 3d 20 4f 5f 56 45 43 |rg_type |== O_VEC|
|00005450| 29 20 7b 0d 09 20 20 20 | 20 28 76 6f 69 64 29 6c |) {.. | (void)l|
|00005460| 28 61 72 67 31 29 3b 0d | 09 20 20 20 20 52 65 6e |(arg1);.|. Ren|
|00005470| 65 77 63 28 61 72 67 31 | 2d 3e 61 72 67 5f 70 74 |ewc(arg1|->arg_pt|
|00005480| 72 2e 61 72 67 5f 73 74 | 72 2c 20 31 2c 20 73 74 |r.arg_st|r, 1, st|
|00005490| 72 75 63 74 20 6c 73 74 | 72 69 6e 67 2c 20 53 54 |ruct lst|ring, ST|
|000054a0| 52 29 3b 0d 09 09 09 2f | 2a 20 67 72 6f 77 20 73 |R);..../|* grow s|
|000054b0| 74 72 69 6e 67 20 73 74 | 72 75 63 74 20 74 6f 20 |tring st|ruct to |
|000054c0| 68 6f 6c 64 20 61 6e 20 | 6c 73 74 72 69 6e 67 20 |hold an |lstring |
|000054d0| 73 74 72 75 63 74 20 2a | 2f 0d 09 7d 0d 09 65 6c |struct *|/..}..el|
|000054e0| 73 65 20 69 66 20 28 61 | 72 67 31 2d 3e 61 72 67 |se if (a|rg1->arg|
|000054f0| 5f 74 79 70 65 20 3d 3d | 20 4f 5f 41 53 53 49 47 |_type ==| O_ASSIG|
|00005500| 4e 29 0d 09 20 20 20 20 | 2f 2a 53 55 50 50 52 45 |N).. |/*SUPPRE|
|00005510| 53 53 20 35 33 30 2a 2f | 0d 09 20 20 20 20 3b 0d |SS 530*/|.. ;.|
|00005520| 09 65 6c 73 65 20 7b 0d | 09 20 20 20 20 28 76 6f |.else {.|. (vo|
|00005530| 69 64 29 73 70 72 69 6e | 74 66 28 74 6f 6b 65 6e |id)sprin|tf(token|
|00005540| 62 75 66 2c 0d 09 20 20 | 20 20 20 20 22 49 6c 6c |buf,.. | "Ill|
|00005550| 65 67 61 6c 20 65 78 70 | 72 65 73 73 69 6f 6e 20 |egal exp|ression |
|00005560| 28 25 73 29 20 61 73 20 | 6c 76 61 6c 75 65 22 2c |(%s) as |lvalue",|
|00005570| 6f 70 6e 61 6d 65 5b 61 | 72 67 31 2d 3e 61 72 67 |opname[a|rg1->arg|
|00005580| 5f 74 79 70 65 5d 29 3b | 0d 09 20 20 20 20 79 79 |_type]);|.. yy|
|00005590| 65 72 72 6f 72 28 74 6f | 6b 65 6e 62 75 66 29 3b |error(to|kenbuf);|
|000055a0| 0d 09 20 20 20 20 72 65 | 74 75 72 6e 20 61 72 67 |.. re|turn arg|
|000055b0| 3b 0d 09 7d 0d 09 61 72 | 67 5b 31 5d 2e 61 72 67 |;..}..ar|g[1].arg|
|000055c0| 5f 74 79 70 65 20 3d 20 | 41 5f 4c 45 58 50 52 20 |_type = |A_LEXPR |
|000055d0| 7c 20 28 61 72 67 5b 31 | 5d 2e 61 72 67 5f 74 79 || (arg[1|].arg_ty|
|000055e0| 70 65 20 26 20 41 5f 44 | 4f 4e 54 29 3b 0d 09 69 |pe & A_D|ONT);..i|
|000055f0| 66 20 28 61 72 67 2d 3e | 61 72 67 5f 74 79 70 65 |f (arg->|arg_type|
|00005600| 20 3d 3d 20 4f 5f 41 53 | 53 49 47 4e 20 26 26 20 | == O_AS|SIGN && |
|00005610| 28 61 72 67 31 5b 31 5d | 2e 61 72 67 5f 66 6c 61 |(arg1[1]|.arg_fla|
|00005620| 67 73 20 26 20 41 46 5f | 41 52 59 4f 4b 29 29 20 |gs & AF_|ARYOK)) |
|00005630| 7b 0d 09 20 20 20 20 61 | 72 67 5b 31 5d 2e 61 72 |{.. a|rg[1].ar|
|00005640| 67 5f 66 6c 61 67 73 20 | 7c 3d 20 41 46 5f 41 52 |g_flags ||= AF_AR|
|00005650| 59 4f 4b 3b 0d 09 20 20 | 20 20 69 66 20 28 61 72 |YOK;.. | if (ar|
|00005660| 67 2d 3e 61 72 67 5f 6c | 65 6e 20 3e 20 31 29 0d |g->arg_l|en > 1).|
|00005670| 09 09 61 72 67 5b 32 5d | 2e 61 72 67 5f 66 6c 61 |..arg[2]|.arg_fla|
|00005680| 67 73 20 7c 3d 20 41 46 | 5f 41 52 59 4f 4b 3b 0d |gs |= AF|_ARYOK;.|
|00005690| 09 7d 0d 23 69 66 64 65 | 66 20 44 45 42 55 47 47 |.}.#ifde|f DEBUGG|
|000056a0| 49 4e 47 0d 09 69 66 20 | 28 64 65 62 75 67 20 26 |ING..if |(debug &|
|000056b0| 20 31 36 29 0d 09 20 20 | 20 20 66 70 72 69 6e 74 | 16).. | fprint|
|000056c0| 66 28 73 74 64 65 72 72 | 2c 22 6c 76 61 6c 20 4c |f(stderr|,"lval L|
|000056d0| 45 58 50 52 5c 6e 22 29 | 3b 0d 23 65 6e 64 69 66 |EXPR\n")|;.#endif|
|000056e0| 0d 09 72 65 74 75 72 6e | 20 61 72 67 3b 0d 20 20 |..return| arg;. |
|000056f0| 20 20 7d 0d 20 20 20 20 | 69 66 20 28 69 20 3d 3d | }. |if (i ==|
|00005700| 20 41 5f 53 54 41 52 20 | 7c 7c 20 69 20 3d 3d 20 | A_STAR ||| i == |
|00005710| 41 5f 4c 53 54 41 52 29 | 20 7b 0d 09 61 72 67 5b |A_LSTAR)| {..arg[|
|00005720| 31 5d 2e 61 72 67 5f 74 | 79 70 65 20 3d 20 41 5f |1].arg_t|ype = A_|
|00005730| 4c 53 54 41 52 20 7c 20 | 28 61 72 67 5b 31 5d 2e |LSTAR | |(arg[1].|
|00005740| 61 72 67 5f 74 79 70 65 | 20 26 20 41 5f 44 4f 4e |arg_type| & A_DON|
|00005750| 54 29 3b 0d 09 72 65 74 | 75 72 6e 20 61 72 67 3b |T);..ret|urn arg;|
|00005760| 0d 20 20 20 20 7d 0d 0d | 20 20 20 20 2f 2a 20 6e |. }..| /* n|
|00005770| 6f 74 20 61 6e 20 61 72 | 72 61 79 20 72 65 66 65 |ot an ar|ray refe|
|00005780| 72 65 6e 63 65 2c 20 73 | 68 6f 75 6c 64 20 62 65 |rence, s|hould be|
|00005790| 20 61 20 72 65 67 69 73 | 74 65 72 20 6e 61 6d 65 | a regis|ter name|
|000057a0| 20 2a 2f 0d 0d 20 20 20 | 20 69 66 20 28 69 20 21 | */.. | if (i !|
|000057b0| 3d 20 41 5f 53 54 41 42 | 20 26 26 20 69 20 21 3d |= A_STAB| && i !=|
|000057c0| 20 41 5f 4c 56 41 4c 29 | 20 7b 0d 09 28 76 6f 69 | A_LVAL)| {..(voi|
|000057d0| 64 29 73 70 72 69 6e 74 | 66 28 74 6f 6b 65 6e 62 |d)sprint|f(tokenb|
|000057e0| 75 66 2c 0d 09 20 20 22 | 49 6c 6c 65 67 61 6c 20 |uf,.. "|Illegal |
|000057f0| 69 74 65 6d 20 28 25 73 | 29 20 61 73 20 6c 76 61 |item (%s|) as lva|
|00005800| 6c 75 65 22 2c 61 72 67 | 6e 61 6d 65 5b 61 72 67 |lue",arg|name[arg|
|00005810| 5b 31 5d 2e 61 72 67 5f | 74 79 70 65 26 41 5f 4d |[1].arg_|type&A_M|
|00005820| 41 53 4b 5d 29 3b 0d 09 | 79 79 65 72 72 6f 72 28 |ASK]);..|yyerror(|
|00005830| 74 6f 6b 65 6e 62 75 66 | 29 3b 0d 09 72 65 74 75 |tokenbuf|);..retu|
|00005840| 72 6e 20 61 72 67 3b 0d | 20 20 20 20 7d 0d 20 20 |rn arg;.| }. |
|00005850| 20 20 61 72 67 5b 31 5d | 2e 61 72 67 5f 74 79 70 | arg[1]|.arg_typ|
|00005860| 65 20 3d 20 41 5f 4c 56 | 41 4c 20 7c 20 28 61 72 |e = A_LV|AL | (ar|
|00005870| 67 5b 31 5d 2e 61 72 67 | 5f 74 79 70 65 20 26 20 |g[1].arg|_type & |
|00005880| 41 5f 44 4f 4e 54 29 3b | 0d 23 69 66 64 65 66 20 |A_DONT);|.#ifdef |
|00005890| 44 45 42 55 47 47 49 4e | 47 0d 20 20 20 20 69 66 |DEBUGGIN|G. if|
|000058a0| 20 28 64 65 62 75 67 20 | 26 20 31 36 29 0d 09 66 | (debug |& 16)..f|
|000058b0| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 22 6c |printf(s|tderr,"l|
|000058c0| 76 61 6c 20 4c 56 41 4c | 5c 6e 22 29 3b 0d 23 65 |val LVAL|\n");.#e|
|000058d0| 6e 64 69 66 0d 20 20 20 | 20 72 65 74 75 72 6e 20 |ndif. | return |
|000058e0| 61 72 67 3b 0d 7d 0d 0d | 41 52 47 20 2a 0d 66 69 |arg;.}..|ARG *.fi|
|000058f0| 78 6c 28 74 79 70 65 2c | 61 72 67 29 0d 69 6e 74 |xl(type,|arg).int|
|00005900| 20 74 79 70 65 3b 0d 41 | 52 47 20 2a 61 72 67 3b | type;.A|RG *arg;|
|00005910| 0d 7b 0d 20 20 20 20 69 | 66 20 28 74 79 70 65 20 |.{. i|f (type |
|00005920| 3d 3d 20 4f 5f 44 45 46 | 49 4e 45 44 20 7c 7c 20 |== O_DEF|INED || |
|00005930| 74 79 70 65 20 3d 3d 20 | 4f 5f 55 4e 44 45 46 29 |type == |O_UNDEF)|
|00005940| 20 7b 0d 09 69 66 20 28 | 61 72 67 2d 3e 61 72 67 | {..if (|arg->arg|
|00005950| 5f 74 79 70 65 20 21 3d | 20 4f 5f 49 54 45 4d 29 |_type !=| O_ITEM)|
|00005960| 0d 09 20 20 20 20 61 72 | 67 20 3d 20 68 69 64 65 |.. ar|g = hide|
|00005970| 5f 61 72 79 28 61 72 67 | 29 3b 0d 09 69 66 20 28 |_ary(arg|);..if (|
|00005980| 61 72 67 2d 3e 61 72 67 | 5f 74 79 70 65 20 3d 3d |arg->arg|_type ==|
|00005990| 20 4f 5f 49 54 45 4d 29 | 20 7b 0d 09 20 20 20 20 | O_ITEM)| {.. |
|000059a0| 74 79 70 65 20 3d 20 61 | 72 67 5b 31 5d 2e 61 72 |type = a|rg[1].ar|
|000059b0| 67 5f 74 79 70 65 20 26 | 20 41 5f 4d 41 53 4b 3b |g_type &| A_MASK;|
|000059c0| 0d 09 20 20 20 20 69 66 | 20 28 74 79 70 65 20 3d |.. if| (type =|
|000059d0| 3d 20 41 5f 45 58 50 52 | 20 7c 7c 20 74 79 70 65 |= A_EXPR| || type|
|000059e0| 20 3d 3d 20 41 5f 4c 45 | 58 50 52 29 0d 09 09 61 | == A_LE|XPR)...a|
|000059f0| 72 67 5b 31 5d 2e 61 72 | 67 5f 74 79 70 65 20 3d |rg[1].ar|g_type =|
|00005a00| 20 41 5f 4c 45 58 50 52 | 7c 41 5f 44 4f 4e 54 3b | A_LEXPR||A_DONT;|
|00005a10| 0d 09 7d 0d 20 20 20 20 | 7d 0d 20 20 20 20 72 65 |..}. |}. re|
|00005a20| 74 75 72 6e 20 61 72 67 | 3b 0d 7d 0d 0d 76 6f 69 |turn arg|;.}..voi|
|00005a30| 64 0d 64 65 68 6f 69 73 | 74 28 61 72 67 2c 69 29 |d.dehois|t(arg,i)|
|00005a40| 0d 41 52 47 20 2a 61 72 | 67 3b 0d 7b 0d 20 20 20 |.ARG *ar|g;.{. |
|00005a50| 20 41 52 47 20 2a 74 6d | 70 61 72 67 3b 0d 0d 20 | ARG *tm|parg;.. |
|00005a60| 20 20 20 69 66 20 28 61 | 72 67 5b 69 5d 2e 61 72 | if (a|rg[i].ar|
|00005a70| 67 5f 74 79 70 65 20 21 | 3d 20 41 5f 45 58 50 52 |g_type !|= A_EXPR|
|00005a80| 29 20 7b 09 2f 2a 20 64 | 65 68 6f 69 73 74 20 2a |) {./* d|ehoist *|
|00005a90| 2f 0d 09 74 6d 70 61 72 | 67 20 3d 20 6d 61 6b 65 |/..tmpar|g = make|
|00005aa0| 5f 6f 70 28 4f 5f 49 54 | 45 4d 2c 31 2c 4e 75 6c |_op(O_IT|EM,1,Nul|
|00005ab0| 6c 61 72 67 2c 4e 75 6c | 6c 61 72 67 2c 4e 75 6c |larg,Nul|larg,Nul|
|00005ac0| 6c 61 72 67 29 3b 0d 09 | 74 6d 70 61 72 67 5b 31 |larg);..|tmparg[1|
|00005ad0| 5d 20 3d 20 61 72 67 5b | 69 5d 3b 0d 09 61 72 67 |] = arg[|i];..arg|
|00005ae0| 5b 69 5d 2e 61 72 67 5f | 70 74 72 2e 61 72 67 5f |[i].arg_|ptr.arg_|
|00005af0| 61 72 67 20 3d 20 74 6d | 70 61 72 67 3b 0d 09 61 |arg = tm|parg;..a|
|00005b00| 72 67 5b 69 5d 2e 61 72 | 67 5f 74 79 70 65 20 3d |rg[i].ar|g_type =|
|00005b10| 20 41 5f 45 58 50 52 3b | 0d 20 20 20 20 7d 0d 7d | A_EXPR;|. }.}|
|00005b20| 0d 0d 41 52 47 20 2a 0d | 61 64 64 66 6c 61 67 73 |..ARG *.|addflags|
|00005b30| 28 69 2c 66 6c 61 67 73 | 2c 61 72 67 29 0d 72 65 |(i,flags|,arg).re|
|00005b40| 67 69 73 74 65 72 20 41 | 52 47 20 2a 61 72 67 3b |gister A|RG *arg;|
|00005b50| 0d 7b 0d 20 20 20 20 61 | 72 67 5b 69 5d 2e 61 72 |.{. a|rg[i].ar|
|00005b60| 67 5f 66 6c 61 67 73 20 | 7c 3d 20 66 6c 61 67 73 |g_flags ||= flags|
|00005b70| 3b 0d 20 20 20 20 72 65 | 74 75 72 6e 20 61 72 67 |;. re|turn arg|
|00005b80| 3b 0d 7d 0d 0d 41 52 47 | 20 2a 0d 68 69 64 65 5f |;.}..ARG| *.hide_|
|00005b90| 61 72 79 28 61 72 67 29 | 0d 41 52 47 20 2a 61 72 |ary(arg)|.ARG *ar|
|00005ba0| 67 3b 0d 7b 0d 20 20 20 | 20 69 66 20 28 61 72 67 |g;.{. | if (arg|
|00005bb0| 2d 3e 61 72 67 5f 74 79 | 70 65 20 3d 3d 20 4f 5f |->arg_ty|pe == O_|
|00005bc0| 41 52 52 41 59 20 7c 7c | 20 61 72 67 2d 3e 61 72 |ARRAY ||| arg->ar|
|00005bd0| 67 5f 74 79 70 65 20 3d | 3d 20 4f 5f 48 41 53 48 |g_type =|= O_HASH|
|00005be0| 29 0d 09 72 65 74 75 72 | 6e 20 6d 61 6b 65 5f 6f |)..retur|n make_o|
|00005bf0| 70 28 4f 5f 49 54 45 4d | 2c 31 2c 61 72 67 2c 4e |p(O_ITEM|,1,arg,N|
|00005c00| 75 6c 6c 61 72 67 2c 4e | 75 6c 6c 61 72 67 29 3b |ullarg,N|ullarg);|
|00005c10| 0d 20 20 20 20 72 65 74 | 75 72 6e 20 61 72 67 3b |. ret|urn arg;|
|00005c20| 0d 7d 0d 0d 2f 2a 20 6d | 61 79 62 65 20 64 6f 20 |.}../* m|aybe do |
|00005c30| 61 20 6a 6f 69 6e 20 6f | 6e 20 6d 75 6c 74 69 70 |a join o|n multip|
|00005c40| 6c 65 20 61 72 72 61 79 | 20 64 69 6d 65 6e 73 69 |le array| dimensi|
|00005c50| 6f 6e 73 20 2a 2f 0d 0d | 41 52 47 20 2a 0d 6a 6d |ons */..|ARG *.jm|
|00005c60| 61 79 62 65 28 61 72 67 | 29 0d 72 65 67 69 73 74 |aybe(arg|).regist|
|00005c70| 65 72 20 41 52 47 20 2a | 61 72 67 3b 0d 7b 0d 20 |er ARG *|arg;.{. |
|00005c80| 20 20 20 69 66 20 28 61 | 72 67 20 26 26 20 61 72 | if (a|rg && ar|
|00005c90| 67 2d 3e 61 72 67 5f 74 | 79 70 65 20 3d 3d 20 4f |g->arg_t|ype == O|
|00005ca0| 5f 43 4f 4d 4d 41 29 20 | 7b 0d 09 61 72 67 20 3d |_COMMA) |{..arg =|
|00005cb0| 20 6c 69 73 74 69 73 68 | 28 61 72 67 29 3b 0d 09 | listish|(arg);..|
|00005cc0| 61 72 67 20 3d 20 6d 61 | 6b 65 5f 6f 70 28 4f 5f |arg = ma|ke_op(O_|
|00005cd0| 4a 4f 49 4e 2c 20 32 2c | 0d 09 20 20 20 20 73 74 |JOIN, 2,|.. st|
|00005ce0| 61 62 32 61 72 67 28 41 | 5f 53 54 41 42 2c 73 74 |ab2arg(A|_STAB,st|
|00005cf0| 61 62 65 6e 74 28 22 3b | 22 2c 54 52 55 45 29 29 |abent(";|",TRUE))|
|00005d00| 2c 0d 09 20 20 20 20 6d | 61 6b 65 5f 6c 69 73 74 |,.. m|ake_list|
|00005d10| 28 61 72 67 29 2c 0d 09 | 20 20 20 20 4e 75 6c 6c |(arg),..| Null|
|00005d20| 61 72 67 29 3b 0d 20 20 | 20 20 7d 0d 20 20 20 20 |arg);. | }. |
|00005d30| 72 65 74 75 72 6e 20 61 | 72 67 3b 0d 7d 0d 0d 41 |return a|rg;.}..A|
|00005d40| 52 47 20 2a 0d 6d 61 6b | 65 5f 6c 69 73 74 28 61 |RG *.mak|e_list(a|
|00005d50| 72 67 29 0d 72 65 67 69 | 73 74 65 72 20 41 52 47 |rg).regi|ster ARG|
|00005d60| 20 2a 61 72 67 3b 0d 7b | 0d 20 20 20 20 72 65 67 | *arg;.{|. reg|
|00005d70| 69 73 74 65 72 20 69 6e | 74 20 69 3b 0d 20 20 20 |ister in|t i;. |
|00005d80| 20 72 65 67 69 73 74 65 | 72 20 41 52 47 20 2a 6e | registe|r ARG *n|
|00005d90| 6f 64 65 3b 0d 20 20 20 | 20 72 65 67 69 73 74 65 |ode;. | registe|
|00005da0| 72 20 41 52 47 20 2a 6e | 78 74 6e 6f 64 65 3b 0d |r ARG *n|xtnode;.|
|00005db0| 20 20 20 20 72 65 67 69 | 73 74 65 72 20 69 6e 74 | regi|ster int|
|00005dc0| 20 6a 3b 0d 20 20 20 20 | 53 54 52 20 2a 74 6d 70 | j;. |STR *tmp|
|00005dd0| 73 74 72 3b 0d 0d 20 20 | 20 20 69 66 20 28 21 61 |str;.. | if (!a|
|00005de0| 72 67 29 20 7b 0d 09 61 | 72 67 20 3d 20 6f 70 5f |rg) {..a|rg = op_|
|00005df0| 6e 65 77 28 30 29 3b 0d | 09 61 72 67 2d 3e 61 72 |new(0);.|.arg->ar|
|00005e00| 67 5f 74 79 70 65 20 3d | 20 4f 5f 4c 49 53 54 3b |g_type =| O_LIST;|
|00005e10| 0d 20 20 20 20 7d 0d 20 | 20 20 20 69 66 20 28 61 |. }. | if (a|
|00005e20| 72 67 2d 3e 61 72 67 5f | 74 79 70 65 20 21 3d 20 |rg->arg_|type != |
|00005e30| 4f 5f 43 4f 4d 4d 41 29 | 20 7b 0d 09 69 66 20 28 |O_COMMA)| {..if (|
|00005e40| 61 72 67 2d 3e 61 72 67 | 5f 74 79 70 65 20 21 3d |arg->arg|_type !=|
|00005e50| 20 4f 5f 41 52 52 41 59 | 29 0d 09 20 20 20 20 61 | O_ARRAY|).. a|
|00005e60| 72 67 2d 3e 61 72 67 5f | 66 6c 61 67 73 20 7c 3d |rg->arg_|flags |=|
|00005e70| 20 41 46 5f 4c 49 53 54 | 49 53 48 3b 09 2f 2a 20 | AF_LIST|ISH;./* |
|00005e80| 73 65 65 20 6c 69 73 74 | 69 73 68 28 29 20 62 65 |see list|ish() be|
|00005e90| 6c 6f 77 20 2a 2f 0d 09 | 20 20 20 20 61 72 67 2d |low */..| arg-|
|00005ea0| 3e 61 72 67 5f 66 6c 61 | 67 73 20 7c 3d 20 41 46 |>arg_fla|gs |= AF|
|00005eb0| 5f 4c 49 53 54 49 53 48 | 3b 09 2f 2a 20 73 65 65 |_LISTISH|;./* see|
|00005ec0| 20 6c 69 73 74 69 73 68 | 28 29 20 62 65 6c 6f 77 | listish|() below|
|00005ed0| 20 2a 2f 0d 09 72 65 74 | 75 72 6e 20 61 72 67 3b | */..ret|urn arg;|
|00005ee0| 0d 20 20 20 20 7d 0d 20 | 20 20 20 66 6f 72 20 28 |. }. | for (|
|00005ef0| 69 20 3d 20 32 2c 20 6e | 6f 64 65 20 3d 20 61 72 |i = 2, n|ode = ar|
|00005f00| 67 3b 20 3b 20 69 2b 2b | 29 20 7b 0d 09 69 66 20 |g; ; i++|) {..if |
|00005f10| 28 6e 6f 64 65 2d 3e 61 | 72 67 5f 6c 65 6e 20 3c |(node->a|rg_len <|
|00005f20| 20 32 29 0d 09 20 20 20 | 20 62 72 65 61 6b 3b 0d | 2).. | break;.|
|00005f30| 20 20 20 20 20 20 20 20 | 69 66 20 28 6e 6f 64 65 | |if (node|
|00005f40| 5b 31 5d 2e 61 72 67 5f | 74 79 70 65 20 21 3d 20 |[1].arg_|type != |
|00005f50| 41 5f 45 58 50 52 29 0d | 09 20 20 20 20 62 72 65 |A_EXPR).|. bre|
|00005f60| 61 6b 3b 0d 09 6e 6f 64 | 65 20 3d 20 6e 6f 64 65 |ak;..nod|e = node|
|00005f70| 5b 31 5d 2e 61 72 67 5f | 70 74 72 2e 61 72 67 5f |[1].arg_|ptr.arg_|
|00005f80| 61 72 67 3b 0d 09 69 66 | 20 28 6e 6f 64 65 2d 3e |arg;..if| (node->|
|00005f90| 61 72 67 5f 74 79 70 65 | 20 21 3d 20 4f 5f 43 4f |arg_type| != O_CO|
|00005fa0| 4d 4d 41 29 0d 09 20 20 | 20 20 62 72 65 61 6b 3b |MMA).. | break;|
|00005fb0| 0d 20 20 20 20 7d 0d 20 | 20 20 20 69 66 20 28 69 |. }. | if (i|
|00005fc0| 20 3e 20 32 29 20 7b 0d | 09 6e 6f 64 65 20 3d 20 | > 2) {.|.node = |
|00005fd0| 61 72 67 3b 0d 09 61 72 | 67 20 3d 20 6f 70 5f 6e |arg;..ar|g = op_n|
|00005fe0| 65 77 28 69 29 3b 0d 09 | 74 6d 70 73 74 72 20 3d |ew(i);..|tmpstr =|
|00005ff0| 20 61 72 67 2d 3e 61 72 | 67 5f 70 74 72 2e 61 72 | arg->ar|g_ptr.ar|
|00006000| 67 5f 73 74 72 3b 0d 09 | 53 74 72 75 63 74 43 6f |g_str;..|StructCo|
|00006010| 70 79 28 6e 6f 64 65 2c | 20 61 72 67 2c 20 41 52 |py(node,| arg, AR|
|00006020| 47 29 3b 09 2f 2a 20 63 | 6f 70 79 20 65 76 65 72 |G);./* c|opy ever|
|00006030| 79 74 68 69 6e 67 20 65 | 78 63 65 70 74 20 74 68 |ything e|xcept th|
|00006040| 65 20 53 54 52 20 2a 2f | 0d 09 61 72 67 2d 3e 61 |e STR */|..arg->a|
|00006050| 72 67 5f 70 74 72 2e 61 | 72 67 5f 73 74 72 20 3d |rg_ptr.a|rg_str =|
|00006060| 20 74 6d 70 73 74 72 3b | 0d 09 66 6f 72 20 28 6a | tmpstr;|..for (j|
|00006070| 20 3d 20 69 3b 20 3b 20 | 29 20 7b 0d 09 20 20 20 | = i; ; |) {.. |
|00006080| 20 53 74 72 75 63 74 43 | 6f 70 79 28 6e 6f 64 65 | StructC|opy(node|
|00006090| 2b 32 2c 20 61 72 67 2b | 6a 2c 20 41 52 47 29 3b |+2, arg+|j, ARG);|
|000060a0| 0d 09 20 20 20 20 61 72 | 67 5b 6a 5d 2e 61 72 67 |.. ar|g[j].arg|
|000060b0| 5f 66 6c 61 67 73 20 7c | 3d 20 41 46 5f 41 52 59 |_flags ||= AF_ARY|
|000060c0| 4f 4b 3b 0d 09 20 20 20 | 20 2d 2d 6a 3b 09 09 2f |OK;.. | --j;../|
|000060d0| 2a 20 42 75 67 20 69 6e | 20 58 65 6e 69 78 20 63 |* Bug in| Xenix c|
|000060e0| 6f 6d 70 69 6c 65 72 20 | 2a 2f 0d 09 20 20 20 20 |ompiler |*/.. |
|000060f0| 69 66 20 28 6a 20 3c 20 | 32 29 20 7b 0d 09 09 53 |if (j < |2) {...S|
|00006100| 74 72 75 63 74 43 6f 70 | 79 28 6e 6f 64 65 2b 31 |tructCop|y(node+1|
|00006110| 2c 20 61 72 67 2b 31 2c | 20 41 52 47 29 3b 0d 09 |, arg+1,| ARG);..|
|00006120| 09 66 72 65 65 5f 61 72 | 67 28 6e 6f 64 65 29 3b |.free_ar|g(node);|
|00006130| 0d 09 09 62 72 65 61 6b | 3b 0d 09 20 20 20 20 7d |...break|;.. }|
|00006140| 0d 09 20 20 20 20 6e 78 | 74 6e 6f 64 65 20 3d 20 |.. nx|tnode = |
|00006150| 6e 6f 64 65 5b 31 5d 2e | 61 72 67 5f 70 74 72 2e |node[1].|arg_ptr.|
|00006160| 61 72 67 5f 61 72 67 3b | 0d 09 20 20 20 20 66 72 |arg_arg;|.. fr|
|00006170| 65 65 5f 61 72 67 28 6e | 6f 64 65 29 3b 0d 09 20 |ee_arg(n|ode);.. |
|00006180| 20 20 20 6e 6f 64 65 20 | 3d 20 6e 78 74 6e 6f 64 | node |= nxtnod|
|00006190| 65 3b 0d 09 7d 0d 20 20 | 20 20 7d 0d 20 20 20 20 |e;..}. | }. |
|000061a0| 61 72 67 5b 31 5d 2e 61 | 72 67 5f 66 6c 61 67 73 |arg[1].a|rg_flags|
|000061b0| 20 7c 3d 20 41 46 5f 41 | 52 59 4f 4b 3b 0d 20 20 | |= AF_A|RYOK;. |
|000061c0| 20 20 61 72 67 5b 32 5d | 2e 61 72 67 5f 66 6c 61 | arg[2]|.arg_fla|
|000061d0| 67 73 20 7c 3d 20 41 46 | 5f 41 52 59 4f 4b 3b 0d |gs |= AF|_ARYOK;.|
|000061e0| 20 20 20 20 61 72 67 2d | 3e 61 72 67 5f 74 79 70 | arg-|>arg_typ|
|000061f0| 65 20 3d 20 4f 5f 4c 49 | 53 54 3b 0d 20 20 20 20 |e = O_LI|ST;. |
|00006200| 61 72 67 2d 3e 61 72 67 | 5f 6c 65 6e 20 3d 20 69 |arg->arg|_len = i|
|00006210| 3b 0d 20 20 20 20 73 74 | 72 5f 66 72 65 65 28 61 |;. st|r_free(a|
|00006220| 72 67 2d 3e 61 72 67 5f | 70 74 72 2e 61 72 67 5f |rg->arg_|ptr.arg_|
|00006230| 73 74 72 29 3b 0d 20 20 | 20 20 61 72 67 2d 3e 61 |str);. | arg->a|
|00006240| 72 67 5f 70 74 72 2e 61 | 72 67 5f 73 74 72 20 3d |rg_ptr.a|rg_str =|
|00006250| 20 4e 75 6c 6c 73 74 72 | 3b 0d 20 20 20 20 72 65 | Nullstr|;. re|
|00006260| 74 75 72 6e 20 61 72 67 | 3b 0d 7d 0d 0d 2f 2a 20 |turn arg|;.}../* |
|00006270| 74 75 72 6e 20 61 20 73 | 69 6e 67 6c 65 20 69 74 |turn a s|ingle it|
|00006280| 65 6d 20 69 6e 74 6f 20 | 61 20 6c 69 73 74 20 2a |em into |a list *|
|00006290| 2f 0d 0d 41 52 47 20 2a | 0d 6c 69 73 74 69 73 68 |/..ARG *|.listish|
|000062a0| 28 61 72 67 29 0d 41 52 | 47 20 2a 61 72 67 3b 0d |(arg).AR|G *arg;.|
|000062b0| 7b 0d 20 20 20 20 69 66 | 20 28 61 72 67 20 26 26 |{. if| (arg &&|
|000062c0| 20 61 72 67 2d 3e 61 72 | 67 5f 66 6c 61 67 73 20 | arg->ar|g_flags |
|000062d0| 26 20 41 46 5f 4c 49 53 | 54 49 53 48 29 0d 09 61 |& AF_LIS|TISH)..a|
|000062e0| 72 67 20 3d 20 6d 61 6b | 65 5f 6f 70 28 4f 5f 4c |rg = mak|e_op(O_L|
|000062f0| 49 53 54 2c 31 2c 61 72 | 67 2c 4e 75 6c 6c 61 72 |IST,1,ar|g,Nullar|
|00006300| 67 2c 4e 75 6c 6c 61 72 | 67 29 3b 0d 20 20 20 20 |g,Nullar|g);. |
|00006310| 72 65 74 75 72 6e 20 61 | 72 67 3b 0d 7d 0d 0d 41 |return a|rg;.}..A|
|00006320| 52 47 20 2a 0d 6d 61 79 | 62 65 6c 69 73 74 69 73 |RG *.may|belistis|
|00006330| 68 28 6f 70 74 79 70 65 | 2c 20 61 72 67 29 0d 69 |h(optype|, arg).i|
|00006340| 6e 74 20 6f 70 74 79 70 | 65 3b 0d 41 52 47 20 2a |nt optyp|e;.ARG *|
|00006350| 61 72 67 3b 0d 7b 0d 20 | 20 20 20 41 52 47 20 2a |arg;.{. | ARG *|
|00006360| 74 6d 70 61 72 67 20 3d | 20 61 72 67 3b 0d 0d 20 |tmparg =| arg;.. |
|00006370| 20 20 20 69 66 20 28 6f | 70 74 79 70 65 20 3d 3d | if (o|ptype ==|
|00006380| 20 4f 5f 52 45 54 55 52 | 4e 20 26 26 20 61 72 67 | O_RETUR|N && arg|
|00006390| 2d 3e 61 72 67 5f 74 79 | 70 65 20 3d 3d 20 4f 5f |->arg_ty|pe == O_|
|000063a0| 49 54 45 4d 20 26 26 0d | 20 20 20 20 20 20 61 72 |ITEM &&.| ar|
|000063b0| 67 5b 31 5d 2e 61 72 67 | 5f 74 79 70 65 20 3d 3d |g[1].arg|_type ==|
|000063c0| 20 41 5f 45 58 50 52 20 | 26 26 20 28 74 6d 70 61 | A_EXPR |&& (tmpa|
|000063d0| 72 67 20 3d 20 61 72 67 | 5b 31 5d 2e 61 72 67 5f |rg = arg|[1].arg_|
|000063e0| 70 74 72 2e 61 72 67 5f | 61 72 67 29 20 26 26 0d |ptr.arg_|arg) &&.|
|000063f0| 20 20 20 20 20 20 28 28 | 74 6d 70 61 72 67 2d 3e | ((|tmparg->|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.